#linux
#linux
Вопрос:
Мне нужно знать, когда конкретный компьютер (ip и MAC которого мне известны) подключен к локальной сети. Я хочу избежать всех механизмов опроса, возможно ли это в Linux достичь этого? Возможно, путем прослушивания icmp-пакета?
Спасибо
Комментарии:
1. 7 вопросов за 5 месяцев и ни одного принятого ответа?
2. Вы пишете часть программного обеспечения для этого или что вы ищете?
3. Почему вы хотите избежать механизмов опроса?
Ответ №1:
Если вы контролируете шлюз, вы можете просто отслеживать трафик и посмотреть, поступает ли он с / на этот хост (через MAC или IP-адрес).
В противном случае все усложняется, и в большинстве случаев требуется какой-то опрос — в коммутируемой сети вы обычно не увидите трафик, предназначенный для другого хоста; самым надежным способом проверки «онлайн-доступности» был бы ARP, возможно, с помощью arping
(или самостоятельно выполнять запросы ARP и отслеживать трафик на предмет ответов ARP).
Обратите внимание, что ни один из этих подходов не является «беспроигрышным» — с помощью таких инструментов, как powernap
, (временно) автономные хосты могут казаться подключенными к Сети.
Ответ №2:
Вы можете использовать NMAP для сканирования вашей сети с помощью простого сканирования типа ping, чтобы увидеть, какие хосты подключены, а какие нет. Это механизм опроса, но если вы не можете запрограммировать маршрутизаторы / коммутаторы в вашей сети, чтобы они сообщали вам, когда MAC или IP-адрес XYZ начал отправлять трафик, я не знаю другого способа сделать это.