Трабл с каналами

mike_S

Новичок
Трабл с каналами

PHP:
<pre>
<?
$soft="traceroute win.mail.ru";
$fp=popen($soft, "r");
while($string=fgets($fp,1000)){
	echo $string;
	flush();
	};
pclose($fp);
?>
</pre>
данные выводяться только после выполнения traceroute.
а нужно - сразу после fgets.
плиз хелп
 

[DAN]

Старожил PHPClub
А откуда они у тебя возьмутся, пока не выполнится traceroute?
Если тебе нужна первая строчка этой команды, попробуй уменьшить размер буфера.
И в самом начале скрипта, там где <pre>, забей (введи) не менее 255 символов (можно пробелами), ибо flush частенько не сбрасывает буфер, если там меньше вышеобозначенного количества символов.
 

[DAN]

Старожил PHPClub
тогда жди, когда полностью выполнится traceroute.
 

mike_S

Новичок
дык дело в том, что эта скотина может и минуту и две исполняться :(
 

nip

Guest
Зря вы так, можно схитрить, насколько я знаю трасроут кэширует результаты, и у нее есть такой параметр замечательный "-m" - максимальное число хопов Что это нам дает? - павильно :) делаем вот так:

сначала: traceroute win.mail.ru -m 1
потом: traceroute win.mail.ru -m 2
потом: traceroute win.mail.ru -m 3

...и так далее...

на каждом шаге хватаем последнюю строчку, делаем до тех пор пока не придем к айпишнику нужного хоста :)

Только зря win.mail.ru выбрад, он к нему дооолго идет, даже с моего сервака :) (хотя до рамблера 4 хопа)

Получется так, что каждый раз получая комманду система не с начала пробивает хосты, а начинает с закешированного :)

Код думаю придумаешь, как айпишник узать думаю тоже найдешь ;)
 
Сверху