Tag Archives: ip address

0210 | ฟังก์ชั่น PHP ตรวจสอบ IP Address ของประเทศไทย

เอามาแปะไว้หน่อย พอดีเอาไปใช้กับเว็บ ลงประกาศฟรี นิดหน่อยครับ ที่เช็คเฉพาะประเทศไทย ก็เพราะว่า แค่อยากรู้เฉยๆว่า ใช่ ip จากไทย หรือไม่ ไม่ได้อยากรู้ ip ทั้งโลก ว่าอยู่ประเทศไหน ซึ่งอันนี้จะมีแจกอยู่เยอะครับ บทความนี้ ผมเลยขอเขียนเฉพาะวิธีตรวจสอบเฉพาะไทย (ที่จริงก็ เอาของคนอื่นมา ที่มาอยู่ด้านล่างครับ ^^ )

function myip2long($ip) {
   if (is_numeric($ip)) {
       return sprintf("%u", floatval($ip));
   } else {
       return sprintf("%u", floatval(ip2long($ip)));
   }
}


function ipfilter($ip) {
   $match = 0;
   $ip_addr = decbin(myip2long($ip));

   if (fopen(dirname(__FILE__)."/iplist.txt", "r")) {
       $source = file(dirname(__FILE__)."/iplist.txt");

       foreach ($source as $line) {
           $network = explode("/", $line);
           $net_addr = decbin(myip2long($network[0]));
           $cidr = $network[1];

           if (substr($net_addr, 0, $cidr) == substr($ip_addr, 0, $cidr)) {
               $match = 1;
               break;
           }
       }
   }
   return $match;
}

Continue reading