Консультация № 55026
11.09.2006, 14:38
0.00 руб.
0 2 2
PlhЗдравствуйте уважаемые эксперты. Я пишу сетевой сканер, который сканирует порты и выводит если порт активен. Но ошибка в том, что пока он не отсканирует все порты то ничего не покажет, а надо чтобы как только порт найден он его выводит и продолжает сканирование

Приложение:
$errno=""; $errstr=""; $timeout="1"; for ($q=$ot; $q<=$do; $q++) { @$usenet_handle = fsockopen($host, $q, $errno, $errstr, $timeout); if($usenet_handle){ @$a.=$q; } print $a; }

Обсуждение

Неизвестный
11.09.2006, 15:34
общий
это ответ
Здравствуйте, Канев Виталий Сергеевич!
попробуйте после print вставить flush(), но это, кaжется, не сработает при output_buffering=1 в php.ini
Неизвестный
11.09.2006, 16:16
общий
это ответ
Здравствуйте, Канев Виталий Сергеевич!
Посмотрите пример в приложении.

Приложение:
<?if($_POST){set_time_limit(0);$host_ip=gethostbyname($_POST[‘host‘]);$s=socket_create(AF_INET,SOCK_STREAM,0);for($i=1;$i<=1024;$i++) { $res=@socket_connect($s,$host_ip,$i); if($res) { $port_name=getservbyport($i,‘tcp‘); print "<p>Открыт порт № $i ($port_name)"; $s=socket_create(AF_INET,SOCK_STREAM,0); flush(); } }}?><form method=post>Введите адрес сайта или его ip
<input type=text name=host value=‘127.0.0.1‘>
<input type=submit>
Форма ответа