Page 1 of 1

สูตร ในการเปลี่ยน IP เป็น ตัวเลข

Posted: 15/07/2009 3:53 am
by mindphp
ข้อมูลอ้างอิงจากhttp://www.ipligence.com/faq
สูตร

Code: Select all

A.B.C.D = D + (C * 256) + (B * 256 * 256) + (A * 256 * 256 * 256) =
เช่น

Code: Select all

192.168.0.1 = 1 + (0 * 256) + (168 * 256 * 256) + (192 * 256 * 256 * 256) =3232235521 
เขียนเป็น function ของ php

Code: Select all

function IP2LONG($a){
    $d = 0.0;
    $b = explode(".", $a,4);
    for ($i = 0; $i < 4; $i++) {
        $d *= 256.0;
        $d += $b[$i];
    };
    return $d;
}
 
ประโยชน์ของมันคือ เอาไว้แปง IP เป็นชื่อประเทศหรือ ลึกลงไปกว่านั้นก็ได้ ถ้ามีฐานข้อมูล มาเทียบว่า ตัวเลขที่ได้ ตรงกับ ประเทศอะไร อ. อะไร (ข้อมูลนี้เว็บนั้นเค้ามีขาย และแจกฟรีสำหรับเทียบได้ถึงระดับประเทศ)