Pues tendrias que escanear cada ip en el rango de tu red ( por ejemplo para 172.16.0.0/16: desde 172.16.0.1 hasta 172.16.255.254 ) con algún método de detección, como icmp o snmp o a traves de algún socket conocido que tengan abierto...
Pero yo lo enfocaria de otra manera. Crearia un cliente en cada host de la lan que abriera un socket udp ( no orientado a conexión, por ejemplo el udp33432 ) que mandara un echo cada x sg ( ¿5 sg? para no contribuir a saturar la red) con el string ,por ejemplo "ip: 172.16.x.x - estoy en red" a la dirección broadcast de la red ( 172.16.255.255 ).
Luego deberias implementar un servidor que escuchara en el puerto udp33432 y que reflejara si ese host/s está/n en la red o no.
¿Por que usar broadcast en lugar de indicar la ip de el servidor de escucha? pues para que desde cualquier host de la lan puedas ver el estado de la red
Para tarbajar con sockets udp mirate:
http://club.idecnet.com/~ccastano/fe...as/urracas.rar http://club.idecnet.com/~ccastano/femepa/121205.htm
Suerte