<?php
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]));
}
?>
获得一个国家所有ip段,随机生成国内ip地址的缩水实现。注意: $ip_long数组中后5个值在64位系统中可能是错误的(下面代码中 $ip_long 数组的后五个值在32位系统中为负数,64位系统中为正数,前五个值在64位系统中也可能有错误)32位系统echo ip2long(“172.16.1.63″);结果 -140823724964位操作系统echo ip2long(“172.16.1.63″);所有ip地址网段下载http://www.ipaddresslocation.org/ip_ranges/get_ranges.php缩水随机生成国内ip地址总共有1600多个网段,只取了其中10个确定是国内的网段使用了2个php函数ip2long($ip)把ip转为intlong2ip($int_ip)把int转回ip