Простой скрипт обработки списка IP

Статус
В этой теме нельзя размещать новые ответы.

pavlenkora

Гуру форума
Регистрация
8 Окт 2008
Сообщения
188
Реакции
81
Добрый день!
Нужен простенький скрипт для выполнения такой задачи:
Есть txt файл IP адресов вида
111.111.111.0/5
222.222.222.0/8
На выходе нужно получить txt файл вида
111.111.111.0
111.111.111.1
111.111.111.2
111.111.111.3
111.111.111.4
111.111.111.5
222.222.222.0
222.222.222.1
222.222.222.2
222.222.222.3
222.222.222.4
222.222.222.5
222.222.222.6
222.222.222.7
222.222.222.8
Познаний в PHP практически нет, буду признателен если поможете в реализации данного скрипта!:thenks::thenks::thenks:
 
PHP:
<?php
$fpin = fopen("input.txt", "r");
$fpout = fopen("output.txt", "w");
while (!feof($fpin)) {
    $buffer = explode('/',trim(fgets($fpin, 64)));
	$ip = ip2long($buffer[0]);
    for($i = 0;$i <= $buffer[1];$i++)
		fputs($fpout,long2ip($ip+$i)."\r\n");
}
fclose($handle);
?>
во входном файле должен строго соблюдаться указанный вами формат
обработку ошибок я не деле, за счет этого получился такой простой код
 
Возможно ли переделать верхний скрипт, для
Есть txt файл диапазона IP адресов вида
194.143.148.0-194.143.149.255
На выходе нужно получить txt файл вида
194.143.148.0
194.143.148.1
194.143.148.2
194.143.148.3
194.143.148.4
194.143.148.5
194.143.148.6
194.143.148.7
194.143.148.8
194.143.148.9
194.143.148.10
194.143.148.11
194.143.148.12
194.143.148.13
...................
194.143.149.248
194.143.149.249
194.143.149.250
194.143.149.251
194.143.149.252
194.143.149.253
194.143.149.254
194.143.149.255
 
а поразмыслить немного самому?
PHP:
<?php 
$fpin = fopen("input.txt", "r"); 
$fpout = fopen("output.txt", "w"); 
while (!feof($fpin)) { 
    $buffer = explode('-',trim(fgets($fpin, 64))); 
    $ip1 = ip2long($buffer[0]); 
    $ip2 = ip2long($buffer[1]); 
    for($i = $ip1;$i <= $ip2;$i++) 
        fputs($fpout,long2ip($i)."\r\n"); 
} 
fclose($handle); 
?>
опять-таки строгость входных даных обязательна
 
Вот нашел скрипт который проставляет в начале и в конце строки нужные значения

PHP:
<?php
$file = file('src.txt');
$nRows = count($file);

$cLeft = '123';
$cRight =  '123';

$fp = fopen('result.txt', 'w');

for ( $i=0; $i<$nRows; $i++ ) 
{
	$line = $cLeft.' '.trim($file[$i]).' '.$cRight."\n";
	
	fwrite($fp, $line);
}

fclose($fp);
?>
Но к сажелению он не работает, подскажите где ошибка?
нужно чтоб скрипт проставлял Порт в конце строки, тоесть
на входе IP
на выходе IP:3128
 
понятие не работает, очень растяжимое. подробней нужно.

для начала попробуй заменить
PHP:
$line = $cLeft.' '.trim($file[$i]).' '.$cRight."\n";

на

PHP:
$line = trim($file[$i]).':3128'."\n";
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху