PHP隨機生成國內ip地址

獲得一個國家所有ip段,隨機生成國內ip地址的縮水實現。

注意: $ip_long數組中後5個值在64位系統中可能是錯誤的(下面代碼中 $ip_long 數組的後五個值在32位系統中爲負數,64位系統中爲正數,前五個值在64位系統中也可能有錯誤)

        32位系統
        echo ip2long("172.16.1.63");
        結果 -1408237249
        64位操作系統
        echo ip2long("172.16.1.63"); 
    所有ip地址網段下載
    [http://www.ipaddresslocation.org/ip_ranges/get_ranges.php](http://www.ipaddresslocation.org/ip_ranges/get_ranges.php)
    縮水隨機生成國內ip地址
    總共有1600多個網段,只取了其中10個確定是國內的網段
    使用了2個php函數
    `ip2long($ip)`把ip轉爲int
    `long2ip($int_ip)`把int轉回ip

代碼如下:

function ip()
{
    $ip_long = array(
        array('607649792', '608174079'), // 36.56.0.0-36.63.255.255
        array('1038614528', '1039007743'), // 61.232.0.0-61.237.255.255
        array('1783627776', '1784676351'), // 106.80.0.0-106.95.255.255
        array('2035023872', '2035154943'), // 121.76.0.0-121.77.255.255
        array('2078801920', '2079064063'), // 123.232.0.0-123.235.255.255
        array('-1950089216', '-1948778497'), // 139.196.0.0-139.215.255.255
        array('-1425539072', '-1425014785'), // 171.8.0.0-171.15.255.255
        array('-1236271104', '-1235419137'), // 182.80.0.0-182.92.255.255
        array('-770113536', '-768606209'), // 210.25.0.0-210.47.255.255
        array('-569376768', '-564133889'), // 222.16.0.0-222.95.255.255
        );
    $rand_key = mt_rand(0, 9);
    return $ip = long2ip(mt_rand($ip_long[$rand_key][0], $ip_long[$rand_key][1]));
} 

使用方法如下:

echo ip();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章