Aggiornamento. Per beccare la subnet mask puoi anche provare con
oltre al protocollo ARP a volte passano anche richieste IP via broadcast (vedi protocollo ICMP, quello usato da ping). A quel punto sai qual'è la subnet mask, basta vedere quali byte sono a 255 dell'indirizzo di destinazione. Ad esempio sul mio PC (mi sono fatto un ping in broadcast):
Codice: Seleziona tutto
#> tcpdump -i wlan0 -n ether broadcast
...
21:27:12.431879 IP 192.168.1.250 > 192.168.1.255: ICMP echo request, id 36441, seq 1, length 64
come vedi l'indirizzo di destinazione è 192.168.1.255, solo l'ultimo byte è a 255 e quindi la subnet mask è: 255.255.255.0.
Per beccare il router invece potresti provare a fare tu un ping in broadcast, a volte risponde, guarda me
Codice: Seleziona tutto
$> ping 192.168.1.255 -b -c1
WARNING: pinging broadcast address
PING 192.168.1.255 (192.168.1.255) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=1.69 ms
come vedi mi ha risposto solo il router 192.168.1.1. Comunque potrebbero anche risponderti tutti gli altri

. In generale se la rete è composta anche da PC windows stai abbastanza sicuro di scovare tutto quello che vuoi, windows ha talmente tanti server attivi che il traffico non manca, specialmente via UDP.
Emanuele