Localizando todos os hosts habilitados para ICMP na sub-rede local

1

Eu sou um host em uma sub-rede 255.255.255.0 - em conformidade com a RFC1918.

Quais são as maneiras possíveis (sem iterar nos 254 endereços) para mapear os IPEndPoints na minha sub-rede local?

    
por divinci 19.02.2010 / 12:14

2 respostas

4

o nik está perto; você precisa fazer ping na transmissão, mas nem todos os sistemas responderão diretamente.

Observe que o endereço de broadcast não é o mesmo que o seu endereço de rede. Se seu IP for 192.168.1.42 e sua máscara de rede for 255.255.255.0 , seu endereço de rede será 192.168.1.0 e seu endereço de difusão de rede será 192.168.1.255 .

  1. Efetue ping na transmissão da sua rede:

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

  2. Verifique o cache do ARP para respostas:

    • Linux: arp
    • WinXP: arp -a

Por incrível que pareça, recebo respostas de uma máquina Win-7 na minha rede ao fazer o ping do endereço de broadcast, mas as respostas de mais ninguém aparecem. Existem 4 dispositivos na minha rede (roteador, XP, Win7, debian); todas as 3 máquinas remotas estão listadas corretamente na saída arp quando eu executei os comandos acima nos sistemas Debian e WinXP.

    
por 19.02.2010 / 13:11
0

Se você enviar um ping de difusão com

ping network_address -b 

em que network_address é sua rede de classe c equivalente a 255.255.255.0 .
Todos os pontos de extremidade responderão a você.
Você só precisa extrair endereços IP de resposta individuais da saída.

Isso significa que, se o seu endereço IP for 192.168.1.42 em uma rede de classe C.
Você faria um ping 192.168.1.0 -b e veria (digamos) um minuto de saída.
Todos os pontos finais conectados na rede responderão a este endereço de transmissão.

    
por 19.02.2010 / 12:36

Tags