Obtener la dirección IP de una computadora conectada directamente

21

He conectado mi computadora de trabajo con otra usando un cable Ethernet directo. La otra máquina es una computadora de escritorio que no tiene periféricos (incluyendo teclado, mouse y monitor) conectados y quiero acceder a ella usando RDP y SMB. Las direcciones IP se configuran automáticamente, por lo que obtiene algo en el rango 169.254.x.x.

Puedo esperar hasta que Windows reconozca la otra máquina o escanee las direcciones IP, pero ambas toman una cantidad de tiempo larga e impredecible. ¿Hay alguna forma más rápida de reconocer la máquina en el otro extremo de un cable Ethernet directo? He pensado en hacer un "ping de Ethernet" de transmisión e invertir ARP, pero no puedo encontrar ninguna instrucción para esta técnica.

Melebio
fuente

Respuestas:

8

En el momento en que conecte ambas computadoras juntas, intentarán encontrar un servidor DHCP. Después de algunos segundos, la solicitud expirará y la computadora se asignará una dirección autoconfigurada. El host se asignará al azar una dirección IP de enlace local y transmite una solicitud arp a través de la red para ver si está en uso

Lo anterior es un resumen reescrito de https://en.wikipedia.org/wiki/Link-local_address

Podemos usar la herramienta de captura de paquetes <any> para capturar esos paquetes e imprimir las direcciones IP de esas solicitudes ARP.

Captura de paquetes arp utilizando la interfaz gráfica de uso de wireshark (todas las plataformas)

  1. Capture en todas las interfaces: sí (alternativamente, seleccione la interfaz correcta si la comprende)
  2. Filtro de captura: arp
  3. Inicie la captura y busque en la columna derecha las direcciones IP de SU PC y la OTRA PC

Captura de paquetes arp usando cli tcpdump (Probado en Linux)

  1. Iniciar / iniciar sesión en una interfaz de terminal
  2. Ejecute el programa "sudo tcpdump arp"
  3. Las direcciones IP de SU PC y la OTRA PC se mostrarán en la pantalla
Ferrybig
fuente
18

Es posible que funcione un ping de IP de difusión: no todos los sistemas responden, pero algunos sí lo hacen en modo 169.254. Pruebe ping 169.254.255.255(necesita -ben Linux) o ping ff02::1(necesita ping6en Linux y posiblemente un ámbito como ff02::1%eth0).

El envío directo de una búsqueda de nombre de NetBIOS (usando nbtstat -a) podría funcionar, si ejecuta Windows y si conoce el nombre de la computadora. No sé un equivalente LLMNR.

La configuración automática 169.254 implica el envío de algunas sondas ARP con la propia dirección del host; puede verlas en Wireshark, tshark, tcpdump.


El "ping de Ethernet" existe , pero solo funciona a nivel de Ethernet, no le dirá nada sobre IP. (A veces se implementa en la propia NIC, pero en su mayoría no se implementa en absoluto).

El "ARP inverso" también existe, pero casi nunca se implementó tampoco: su uso principal fue reemplazado por BOOTP y luego por DHCP.

usuario1686
fuente
2
¡El ping IP no funcionó pero nbtstat -a <computer_name> -cproporciona la dirección IP deseada! ¡Gracias!
Melebius
2
Por supuesto, también existe el método "extremo" de enviar solicitudes ARP para todas las direcciones IP 65024 y ver de cuáles recibe una respuesta.
kasperd
El OP ya dice "Puedo ... escanear direcciones IP pero [esto] lleva mucho ... tiempo". En la pregunta.
Scott
No lo hace si tienes buenas herramientas. Zmap puede escanear todo el internet IPv4 en cuestión de horas, por ejemplo. Hacer un escaneo ARP a través de direcciones de 64k puede ser muy rápido.
user1686
6

Si configura su máquina para obtener una dirección IP de un servidor DHCP, entonces, obviamente, debe haber un servidor DHCP en la red. Dado que usa un cable directo (cruzado) para conectar ambas computadoras entre sí, no hay un servidor DHCP, por lo que Windows crea una dirección IP aleatoria falsa. Por esta razón, lleva mucho tiempo encontrarse, porque no hay un servidor que gestione la conexión por usted.

El mejor método sería agregar un enrutador con DHCP en la mezcla, ya que acelerará las cosas significativamente. Pero si usted no quiere gastar dinero en esto, su segunda mejor opción es configurar manaully las direcciones IP en ambas máquinas para 192.168.0.1y 192.168.0.2con una máscara de subred de255.255.255.0

LPChip
fuente
4

Si la segunda máquina no tiene cabeza, querrá usar DHCP de algún tipo. Coloque un enrutador entre los dos sistemas cuya pantalla de estado puede ver o instale una aplicación de servidor DHCP en su computadora de trabajo para proporcionar su dirección al sistema sin cabeza.

Zel
fuente
1

Puede configurar su PC para que actúe como un servidor DHCP.

http://www.dhcpserver.de/cms/ - Es lo que uso. Solo toma un minuto configurarlo y funciona muy bien.

Simplemente proporcione a su NIC Ethernet una dirección IP estática (como:) 169.254.1.1, y una subred (como:) 255.255.0.0, y nada más.

Elija la NIC Ethernet como su adaptador de servidor DHCP en la aplicación mencionada anteriormente.

Ejecute la aplicación del servidor DHCP, reinicie el servidor o dispositivo con la IP que está buscando, y una vez que se inicie, recibirá una dirección IP del rango definido de los servidores DHCP. Luego puede usar la interfaz web incluida con el servidor DHCP para ver qué dirección IP ha emitido el nuevo servidor, o simplemente escanear todas las IP en el rango DHCP.

Rápido, fácil e intuitivo. Al menos eso pienso.

Jack_Hu
fuente
0

Antes de solucionar el problema, asegúrese de verificar que haya luces de enlace verde estáticas en la vista posterior de las tarjetas de red. Si no se iluminan en verde, deberá asegurarse de tenerlos conectados a través de un cable cruzado. Verifique también que la configuración dúplex de las tarjetas sea la misma (dúplex completo / medio); de lo contrario, puede experimentar una luz de color ámbar.

Una vez que esté verde, deberá asignarles direcciones de forma estática. No le recomiendo que ejecute un servidor dhcp para la asignación si está en su red de trabajo (puede romper las cosas a lo grande si su servidor dhcp comienza a responder las solicitudes de otras máquinas de difusión de descubrimiento de dhcp en la red)

NotAdmin Dave
fuente
-1

¿Qué tal ir a la máquina # 2 y ejecutar un ping allí? Supongo que tiene acceso físico a la máquina y privilegios de inicio de sesión.

Dependiendo de cuál sea el propósito de este esfuerzo (y el sistema operativo), también podría: - Asignar a la otra computadora (suponiendo que tuviera el nombre de la computadora) y obtener los archivos que necesita - RDP / SSH a través del nombre de la computadora.

Paul Douglas
fuente
1
El OP dice "La otra máquina no tiene periféricos conectados y quiero acceder a ella usando RDP ..." en la pregunta. Interpreto que la primera parte de esto significa que no tiene teclado ni monitor, y, claramente, el OP sabe sobre RDP. Y el nombre de la computadora no es una bala mágica: funciona solo si la primera computadora "sabe" cómo asignar el nombre a una dirección IP. Y el punto central de la pregunta es que "las direcciones IP se configuran automáticamente", por lo que las máquinas no conocen las direcciones de los demás.
Scott
-1

No soy un experto, pero simplemente puede mirar ipconfigen la ventana de cmd para encontrar la dirección IP en la segunda computadora, que es una dirección IP automática si no hay DHCP o simplemente configurar manualmente la dirección IP para que esté en la misma red y subred como la primera computadora.

Chris
fuente
2
El OP dice "La otra máquina no tiene periféricos conectados ..." en la pregunta. Interpreto que esto significa que no tiene teclado ni monitor.
Scott