ตรวจสอบผู้เข้าชมเว็บไซต์ว่าใช้งานผู้ให้บริการ Internet รายใด เช่น True CSLoxinfo KSC
web design ออกแบบเว็บไซต์ พร้อมบริการดูแลเว็บไซต์ ให้คำปรึกษาในการโปรโมทเว็บไซต์ อย่างมืออาชีพ


Webdesign Article : | 1 | 


วันนี้จะมาแนะนำ เนื่องด้วยพอดีทางผมอยากรู้ว่าคนที่เข้ามานั้นมาจาก ISP ใดบ้าง ก็เลยเริ่มค้นหาข้อมูล ได้วิธีการตรวจสอบดี ๆ มาฝากครับ ก่อนอื่นเลยต้องเริ่มจากการสร้าง isp list ขึ้นมาก่อน อันนี้เราจะทำเฉพาะ check ISP ในประเทศไทยเท่านั้นนะครับ

สร้างไฟล์ isplist.txt ขึ้นมาครับ หรือจะเก็บลง mysql ก็ไม่ว่ากันครับ

973602816,973864959,TRUENET
977272832,977305599,BuddyB
981991424,982122495,csloxinfo-th
982712320,982745087,Maxnet
1023901696,1023934463,CAT-BB-NET
1029308416,1029439487,HUAWEI-TRUEHISP-ASIANET
1966014464,1966079999,testing max net
1990983680,1991245823,TOT-NET
2088239104,2088435711,TRUEBB-NET
2090696704,2090729471,Maxnet
2098724864,2098987007,TOT
2657878016,2657943551,KU
2717253632,2717319167,KMITL
2826436608,2826502143,TH-AU-NET
3390832640,3390963711,UniNet(Inter-university network)
3394924544,3394928639,QNET-TH-NET
3400926208,3400933375,Far East Internet
3398156288,3398164479,Hutchison CAT Wireless
3413180416,3413213183,TOT
3398402048,3398418431,edNET
3415343104,3415408639,LOXINFO-TH
3415506944,3415556095,A-Net
3523514624,3523514751,AMARI-TH
3537174528,3537190911,TRUENET
3539353600,3539402751,Samart Infonet
3732602880,3732668415,Maxnet


จากนั้นส่วน header ของไฟล์ที่ต้องการตรวจสอบ ปกติผมจะเขียนไว้ใน index.php ครับ

if (trim($ip) == ""){
 $ip = getenv("HTTP_X_FORWARDED_FOR");
 if (trim($ip) == ""){
  $ip = getenv("REMOTE_ADDR");
 }
}

if ($ip == "unknown"){$ip = getenv("REMOTE_ADDR");} // ได้ค่า IP มาล่ะครับ

ต่อไปก็เตรียมแปลง IP Address เป็น Interger ด้วย function นี้ครับ

function ip2int($ip) {
   if(preg_match('/^\\D*(\\d+)\\D(\\d+)\\D(\\d+)\\D(\\d+)\\D*$/', $ip, $array)) {
     return (16777216 * $array[1] + 65536 * $array[2] + 256 * $array[3] + 1 * $array[4]);
   } else {
     return (0);
   }
}

เปิดไฟล์ขึ้นมาอ่านค่าเก็บไว้ครับ

$fs = fopen("isplist.txt","r");
$isplist = fread($fs,filesize("isplist.txt"));
fclose($fs);

$arisplist = explode("\\n",$isplist);
foreach($arisplist as $val){
 if (trim($val) != ""){
  list($s,$e,$isp) = split(",",$val);
  $ip2int = ip2int($ip);
  if (($ip2int >= $s)&&($ip2int <= $e)){
   $yourisp = $isp; // เทียบค่าใน text file แล้วก็จะได้ค่า ISP มาเลยครับ
  }
 }
}

if (trim($yourisp == "")){ // กรณีนี้ไม่ได้ชื่อ ISP มา ก็เอาเป็น IP Address เหมือนเดิมก็ยังดีครับ
 $yourisp = gethostbyaddr($ip);
 $aryourisp = explode(".",$yourisp);
 $yourisp = strtoupper($aryourisp[count($aryourisp)-3]).".".strtoupper($aryourisp[count($aryourisp)-2]).".".strtoupper($aryourisp[count($aryourisp)-1]);
}

เท่านี้แหละครับ ก็สามารถทำค่า $youtisp ไปใช้งานได้แล้วครับ

บทความดี ๆ จาก : ณัฐธัญ เตชะกาญจนวงศ์



Webdesign Article : |
1 | 

ตรวจสอบผู้เข้าชมเว็บไซต์ว่าใช้งานผู้ให้บริการ Internet รายใด เช่น True CSLoxinfo KSC

HOME   |   ABOUT US   |   HOSTING   |   DOWNLOAD   |   SUPPORT   |   CONTACTS
Copyright © Naxza.com,Since 2004. All Rights Reserved. Privacy policy. monitoring site uptime web