PHP:如何创建IP地址列表

时间:2015-08-11 19:55:29

标签: php

我有一个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

这将永远带我,这样做。呵呵呵...

我确定有一些奇特的数学功能可以清理它。但是,我还没想到它。

1 个答案:

答案 0 :(得分:8)

PHP Generate IP Ranges

  

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地址。