随机生成ip php函数,PHP实现的随机IP函数

第一种方法

function get_rand_ip()

{

$arr_1 = array("218","218","66","66","218","218","60","60","202","204","66","66","66","59","61","60","222","221","66","59","60","60","66","218","218","62","63","64","66","66","122","211");

$randarr= mt_rand(0,count($arr_1));

$ip1id = $arr_1[$randarr];

$ip2id= round(rand(600000, 2550000) / 10000);

$ip3id= round(rand(600000, 2550000) / 10000);

$ip4id= round(rand(600000, 2550000) / 10000);

return $ip1id . "." . $ip2id . "." . $ip3id . "." . $ip4id;}

cho get_rand_ip();//输出:211.104.85.78

第二种方法

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

来源:http://www.liangkun.net/archives/681.html

所有ip地址网段下载

http://www.ipaddresslocation.org/ip_ranges/get_ranges.php

缩水随机生成国内ip地址

总共有1600多个网段,只取了其中10个确定是国内的网段

使用了2个php函数

ip2long($ip)把ip转为int

long2ip($int_ip)把int转回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);

$ip= long2ip(mt_rand($ip_long[$rand_key][0], $ip_long[$rand_key][1]));

?>


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部