2010-05-20 14 views
5

¿Hay alguna manera elegante de hacer que un programa detecte una computadora nueva que está conectada a la red?Detectar automáticamente una nueva computadora conectada a la red

Me gustaría que mi programa "detecte automáticamente" una nueva computadora conectada a la red (están en la misma red). Como un dispositivo USB conectado a la computadora.

Lo que estoy haciendo ahora es guardar una lista de todas las computadoras en la red de vez en cuando. Otro enfoque es PING todas las direcciones IP disponibles en la subred.

¿Hay algún otro enfoque elegante?

Gracias!

Respuesta

4

Escuchar las solicitudes ARP es la forma canónica de hacerlo. Independientemente de DHCP o no, cualquier computadora conectada que desee comunicarse con el mundo exterior deberá realizar una solicitud ARP para la dirección del enrutador predeterminado. Esta solicitud se emitirá como difusión y contendrá las direcciones MAC e IP de la interfaz de origen.

Si la otra computadora utiliza DHCP, hará una solicitud ARP para su propia dirección como parte de la detección de dirección duplicada, que también es una transmisión que puede husmear.

(esto funciona más o menos la misma manera para IPv6, excepto que hay que buscar paquetes de descubrimiento vecino o soliciation enrutador en su lugar.)

Al igual que la respuesta aludido, si usted tiene un interruptor para las cuales se puede telnet o use SNMP on, puede extraer la tabla MAC. Eso le dará una lista de direcciones MAC en cada puerto en el interruptor. Sin embargo, si desea las direcciones IP, aún necesita escuchar ARP: s.

Por otro lado, si tiene acceso a la puerta de enlace predeterminada en la red, también puede ver la tabla ARP allí. Eso le dará direcciones MAC e IP para cualquier persona que se haya comunicado recientemente (por diferentes valores de recientemente ...).

1

Si tiene un conmutador gestionado de algún tipo, probablemente podría conectarse a eso, sería un método bastante elegante.

Si está en un dominio, puede obtener una lista de todas las máquinas unidas al dominio del controlador de dominio.

En su defecto, todo lo que puedo pensar es un desafío/respuesta (por ejemplo, ping) o detectando el tráfico enviado desde ellos (ver this question como punto de partida?), Ninguno de los cuales me parece elegante enfoque.

+0

Escuchar el tráfico DHCP puede ser una forma, ya que eso siempre se transmite. (DHCP tampoco se puede hacer de otra manera; la máquina de conexión no sabe con quién hablar ...) –

+0

No entiendo muy bien cómo puedo usar un conmutador "administrado" para esto. ¿Puedes explicar un poco más? – Ian

+0

La observación del tráfico ARP es otra forma: también se envía por difusión, y la nueva máquina no se comunicará mucho sin enviar solicitudes ARP. – caf

Cuestiones relacionadas