从文本文件生成IP列表

时间:2018-07-30 01:20:33

标签: php list ip generate

我的文本文件包含如下格式的IP范围::

52.0.0.0-52.1.255.255
52.5.0.0-52.50.255.255
我想从此范围逐行生成IP列表 我试图通过使用此代码来做到这一点,但它不起作用。

<?php

$file = file('ips.txt');
foreach ($file AS $line) {
    $ips = explode('-', $line);
    $range_one = $ips[0];
    $range_two = $ips[1];

    $ip1 = ip2long ($range_one);
    $ip2 = ip2long ($range_two);
    while ($ip1 <= $ip2) {
    print_r (long2ip($ip1) ."". "\n");
    $ip1 ++;

}
}
?>

,我想将输出保存在txt文件中, 请帮忙做到这一点,如果有,请更正错误。

1 个答案:

答案 0 :(得分:1)

添加代码以删除每行中的 \ r \ n \ n ,以便爆炸'-'

并将输出保存到文本文件中。

<?php

$file = file('ips.txt');
$data = "";
foreach ($file AS $line) {

    $ip_range = str_replace(array("\r\n","\r"),"",$line); /* remove \r\n or \n before explode '-' */

    $ips = explode('-', $ip_range);
    $range_one = $ips[0];
    $range_two = $ips[1];

    $ip1 = ip2long ($range_one);
    $ip2 = ip2long ($range_two);

    while ($ip1 <= $ip2) {
        $data .= (long2ip($ip1) ."". "\n"); /* save each line to string */
        $ip1 ++;
    }
}

print_r ($data);
file_put_contents("ips_list.txt", $data); /* save output to text file */

?>