1

Я являюсь хостом в подсети 255.255.255.0 - в соответствии с RFC1918.

Какие способы возможны (без итерации по 254 адресам) для сопоставления IPEndPoints в моей локальной подсети?

2 ответа2

4

Ник рядом; вам нужно пропинговать широковещательную рассылку, но не все системы будут отвечать напрямую.

Обратите внимание, что широковещательный адрес не совпадает с вашим сетевым адресом. Если ваш IP-адрес 192.168.1.42 , а ваша маска сети 255.255.255.0 , то ваш сетевой адрес - 192.168.1.0 а сетевой широковещательный адрес - 192.168.1.255 .

  1. Пинг трансляции вашей сети:

    • Linux: ping 192.168.1.255 -b
    • WinXP: ping 192.168.1.255

  2. Проверьте кэш ARP для ответов:

    • Linux: arp
    • WinXP: arp -a

Как ни странно, я получаю ответы от машины Win-7 в моей сети при пинге широковещательного адреса, но ответы других не отображаются. В моей сети 4 устройства (роутер, XP, Win7, debian); все 3 удаленные машины правильно перечислены в выводе arp когда я выполнил вышеуказанные команды в системах Debian и WinXP.

0

Если вы отправите широковещательный пинг с,

ping network_address -b 

где network_address - ваша эквивалентная сеть класса c с номером 255.255.255.0 .
Все конечные точки ответят вам.
Затем вам просто нужно извлечь уникальные индивидуальные отвечающие IP-адреса из выходных данных.


Это означает, что ваш IP-адрес 192.168.1.42 в сети класса C.
Вы должны выполнить ping 192.168.1.0 -b и посмотреть (скажем) на выходную стоимость.
Все подключенные конечные точки в сети ответят на этот широковещательный адрес.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .