|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Victor Wagner 2:5020/400 23 Nov 2005 13:54:15 To : Ilya Anfimov Subject : Re: Ping и ядро 2.6.x -------------------------------------------------------------------------------- Ilya Anfimov <ilan@astelecom.ru> wrote: IA>2005-11-21, Victor Wagner <vitus@45.free.net> пишет: >>Был у меня скриптик, который проверял доступность машин в >>локальной сети. Устроен был так - вызывал fping с длинным >>списком IP-адресов (ибо известно что на broadcast ping >>операционки от MS не отвечают), получал ответы, а потом еще >>прочитывал arp-таблицу, на предмет обнаружения Windows XP >>SP2 с "настроенным" по умолчанию файрволлом. Года три это >>всё прекрасно жило на ядрах серии 2.2.x и 2.4.x - fping >>-aB1 примерно-100-адресов отрабатывал секунды за 4-5, что >>вполне позволяло использовать это дело из cgi-скрипта. >>После перехода на ядро 2.6 оно почему-то вдруг начало >>тормозить. Hе менее чем на порядок. Интересно как можно с >>этим побороться, В принципе, меня вполне устроит список >>хостов, которые ответили на arp-запрос. Поскольку сеть >>локальная, в принципе вообще можно уложиться где-то в >>полсекунды. Hо запускать 100 процессов ping сразу - не >>хочется. В proc ручку для arp-таймаута искал, не нашел. IA>Можно nmap -snP xxx.xxx.xxx.xxx/24 от рута. Действительно работает. Только nmap -n -sP xxx.xxx.xxx.xxx/24. real 0m5.750s user 0m0.376s sys 0m0.297s Я, правда, уже более быстрое решение нашел - с запуском 100 процессов netcat на 7-й порт. for i in `seq 1 254`; do nc -w 1 -q 0 $ xxx.xxx.xxx.$i 7 2>&1 >/dev/null </dev/null & done wait Отрабатывает за 1.2 секунды, опосля чего arp -n |grep ether возвращает список хостов, которые откликнулись на запрос. -- --- ifmail v.2.15dev5.3 * Origin: Free Net of Leninsky,45 (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/15178f5948dc6.html, оценка из 5, голосов 10
|