такой вот вопрос, все уже перегуглил, но так и не решил. На Линуксе все работает, пакеты отправляются и нормально считываются, но мне нужно, чтобы работало и на Винде. Вот примерный код: PHP: $udp = new IO::Socket::INET ( LocalPort => 33435, Proto => 'udp', PeerAddr => $ip, PeerPort => 33435 ) or die "Cann't create socket: $!"; $icmp = new IO::Socket::INET ( LocalPort => 33435, Proto => 'icmp' ) or die "Cann't create socket: $!"; print $udp 'Echo'; $icmp->recv($datagram, 1500, $flags); и на винде просто зависает и все. Смотрел трафик WireShark'ом пакет отправляется, icmp пакет приходит, но скрипт не может прочитать... помогите пожалуйста. и да, сторонние библиотеки не предлагать типа Ping Traceroute
с этим все в порядке, порты тоже, на какой отправляю, на тот и приходит, тот же и читаю... на Ubuntu все работает, считывает нормально, на винде зависает на считывании icmp пакета, хотя Wireshark показывает что пакет пришел.
Может проще взять модуль http://search.cpan.org/dist/Net-Traceroute-PurePerl/PurePerl.pm и взять оттуда нужный код? Всего ~800 строк кода на чистых сокетах.