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

php随机生成国内ip地址

PHP中文网
풀어 주다: 2016-05-25 17:13:51
원래의
1315명이 탐색했습니다.

获得一个国家所有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]));
} 
?>
로그인 후 복사
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿