我有一个IP地址范围列表,我想创建一个包含范围列表的所有IP地址的顺序列表。
列表类似于下面(但更长)......
From IP To IP Total IPs Assign Date Owner
1.0.32.0 1.0.63.255 8192 12/4/2011
1.1.16.0 1.1.31.255 4096 12/4/2011
1.1.32.0 1.1.63.255 8192 12/4/2011
1.2.16.0 1.2.31.255 4096 12/4/2011
1.2.32.0 1.2.63.255 8192 12/4/2011
1.2.64.0 1.2.127.255 16384 12/4/2011
1.3.0.0 1.3.255.255 65536 12/4/2011
目前,我正在重复相同的for ()
循环。
<?php
for ($a = 0; $a <= 255; $a++) {
echo "1.0.32.$a<br>";
}
for ($a = 0; $a <= 255; $a++) {
echo "1.0.33.$a<br>";
}
for ($a = 0; $a <= 255; $a++) {
echo "1.0.34.$a<br>";
}
for ($a = 0; $a <= 255; $a++) {
echo "1.0.35.$a<br>";
}
for ($a = 0; $a <= 255; $a++) {
echo "1.0.36.$a<br>";
}
for ($a = 0; $a <= 255; $a++) {
echo "1.0.37.$a<br>";
}
?>
根据需要吐出一份IP列表。
1.0.32.0
1.0.32.1
1.0.32.2
1.0.32.3
1.0.32.4
1.0.32.5
1.0.32.6
1.0.32.7
1.0.32.8
这将永远带我,这样做。呵呵呵...
我确定有一些奇特的数学功能可以清理它。但是,我还没想到它。
答案 0 :(得分:8)
function ip_range($ start,$ end){
$ start = ip2long($ start);
$ end = ip2long($ end);
return array_map('long2ip',range($ start,$ end));
}
$ range_one =“1.1.1.1”;
$ range_two =“1.1.99.255”;
print_r(ip_range($ range_one,$ range_two));
编辑:我在1秒内创建了65794个IP地址。