Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

резолвинг адреса по ARP-таблицы

4 views
Skip to first unread message

Andrey Vasilkin

unread,
Apr 2, 2007, 10:37:27 AM4/2/07
to
Hi All, надеюсь, с эхой не ошибся? Отправьте меня куда следует если оффтоп.

Переношу (скажем так, добиваюсь воспроизведения полной его функциональности
под NT) некий код с OS/2. Решаются задачи работы с сетевыми потоками в
реальном времени, т.е. серьёзные требования к скорострельности.

В оси есть вполне себе стандартная функа ioctl(,SIOCGARP,) -- получение
MAC-адреса по IP из локальной ARP-таблицы. Есть ли её аналог в NT?

Пока видится решение на основе GetIpNetTable() но! это не устраивает по 2м
причинам: 1. перед тем как искать требуемый ip приходится всю таблицу
копировать в свой буфер (накладно по времени) 2. мне ещё не известно, будет ли
таблица отсортирована по ip-адресам (в оси отсортирована), т.е. можно ли будет
применить методы быстрого поиска.

Приходит на ум вариант - периодически делать снимок ARP-таблицы функой
GetIpNetTable() в отдельной нити, но тогда теряем актуальность таблицы в
случайный момент времени.

Пока не понял, а SendARP() действительно всегда посылает запрос в сеть если
нет записи в локальном кэше? Тогда тоже не то что нужно (необходимо выбирать
адреса только из локальной ARP-таблицы).

0 new messages