LINUX.ORG.RU
ФорумAdmin

Fast ARPing


0

0

Существует ли какая либо утила, аля arping, но более шустрее.
Перед ней стоит такая задача:
Есть куча хостов, надо проарпингить их, но не за два дня ;), а каждый хост через 10мин., а то и менее.

Вырезка из arping.c

void catcher(void)
{
struct timeval tv;

gettimeofday(&tv, NULL);

if (start.tv_sec==0)
start = tv;

if (count-- == 0 || (timeout && MS_TDIFF(tv,start) > timeout*1000 + 500))
finish();

if (last.tv_sec==0 || MS_TDIFF(tv,last) > 500) {
send_pack(s, src, dst, &me, &he);
if (count == 0 && unsolicited)
finish();
}
alarm(1);
}

alarm(1); - выполняет ф-цию catcher(void) один раз в секунду.
alarm() принимает INT, поэтому дробное туда передать нельзя :(

Есть идеи как заставить этого зверька работать быстрее.
У меня не большой опыт программирования на С++


arping -c 2
посылает два пакета !
Непонял в чем проблема ?
arping локальную сеть пингует всю за несколько секунд .

sova ★★
()
Ответ на: комментарий от sova

про -с я знаю, неушто я бы полез в исходники если бы не умел читать маны?

Проблема в том что мне надо пинговать хотябы по 4 пакета, между каждым пакетом идет задержка в 1 секунду alarm(1);, считаем: 4 пакета - 4 секунды, т.е. на один хост уходит не менее 4 секунд. При наличии полной сети 254 адр. 254 * 4 = 1016 секунд. - 16минут Это при условии, что все хосты включены, а такое бывает достаточно редко. А таких сетей у меня 8.

nevsky
() автор топика
Ответ на: комментарий от nevsky

либо расспаралель процесс:
подели сеть на 16 (напрмер) под-сегметнов, и запускай паралельно.

либо другой вариант:
нужно ли тебе обязательно 4 пинга?
если тебе нужно узнать соответские MAC-IP то может другие варианты:
- nmap -sP и потом arp -a
- arpwatch

zhiltsov
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.