Heim >php教程 >PHP源码 >php随机生成国内ip地址

php随机生成国内ip地址

PHP中文网
PHP中文网Original
2016-05-25 17:13:511391Durchsuche

获得一个国家所有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

缩水随机生成国内ip地址
总共有1600多个网段,只取了其中10个确定是国内的网段
使用了2个php函数
ip2long($ip)把ip转为int
long2ip($int_ip)把int转回ip

<?php
function ip()
{
    $ip_long = array(
        array(&#39;607649792&#39;, &#39;608174079&#39;), // 36.56.0.0-36.63.255.255
        array(&#39;1038614528&#39;, &#39;1039007743&#39;), // 61.232.0.0-61.237.255.255
        array(&#39;1783627776&#39;, &#39;1784676351&#39;), // 106.80.0.0-106.95.255.255
        array(&#39;2035023872&#39;, &#39;2035154943&#39;), // 121.76.0.0-121.77.255.255
        array(&#39;2078801920&#39;, &#39;2079064063&#39;), // 123.232.0.0-123.235.255.255
        array(&#39;-1950089216&#39;, &#39;-1948778497&#39;), // 139.196.0.0-139.215.255.255
        array(&#39;-1425539072&#39;, &#39;-1425014785&#39;), // 171.8.0.0-171.15.255.255
        array(&#39;-1236271104&#39;, &#39;-1235419137&#39;), // 182.80.0.0-182.92.255.255
        array(&#39;-770113536&#39;, &#39;-768606209&#39;), // 210.25.0.0-210.47.255.255
        array(&#39;-569376768&#39;, &#39;-564133889&#39;), // 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]));
} 
?>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:过滤UBB代码的php类Nächster Artikel:PHP 移除文本中的URL地址