Получение IP-адреса компьютера с прямым подключением

22

Я подключил свой рабочий компьютер к другому с помощью прямого кабеля Ethernet. Другой компьютер - это настольный компьютер, к которому не подключены периферийные устройства (включая клавиатуру, мышь и монитор), и я хочу получить к нему доступ с помощью RDP и SMB. IP-адреса настраиваются автоматически, поэтому он получает что-то в диапазоне 169.254.x.x.

Я могу подождать, пока Windows распознает другой компьютер или просканировать IP-адреса, но это займет много времени и непредсказуемо. Есть ли более быстрый способ распознать машину на другом конце прямого кабеля Ethernet? Я думал о создании широковещательного «Ethernet-пинга» и обратного ARP, но не могу найти никаких инструкций для этого метода.

Melebius
источник

Ответы:

8

В тот момент, когда вы соедините оба компьютера вместе, они попытаются найти DHCP-сервер. Через несколько секунд запрос истечет, и компьютер назначит автоматически настроенный адрес самому себе. Затем хост случайным образом назначает себе локальный IP-адрес канала и передает запрос arp по сети, чтобы определить, используется ли он.

Выше приведено переписанное резюме https://en.wikipedia.org/wiki/Link-local_address

Мы можем использовать <любой> инструмент захвата пакетов для захвата этих пакетов и печати IP-адресов этих запросов ARP.

Захват пакетов arp с помощью wireshark GUI (все платформы)

  1. Захват на всех интерфейсах: да (в качестве альтернативы выберите правильный интерфейс, если вы его понимаете)
  2. Фильтр захвата: arp
  3. Начните захват и найдите в правом столбце IP-адреса вашего компьютера и другого компьютера.

Захват пакетов arp с использованием cli tcpdump (протестировано в Linux)

  1. Запуск / вход в интерфейс терминала
  2. Запустите программу "sudo tcpdump arp"
  3. IP-адреса вашего ПК и ДРУГОГО ПК будут отображаться на экране
Ferrybig
источник
18

Может работать пинг широковещательного IP - не все системы отвечают на него, но некоторые работают в режиме 169.254. Попробуйте ping 169.254.255.255(нужно -bв Linux) или ping ff02::1(нужно ping6в Linux и, возможно, в такой области, как ff02::1%eth0).

Непосредственная отправка поиска (с использованием nbtstat -a) имени NetBIOS может работать, если он работает под управлением Windows и если вы знаете имя компьютера. Я не знаю эквивалент LLMNR.

Автоконфигурация 169.254 включает в себя отправку некоторых ARP-зондов с собственным адресом хоста - вы можете увидеть их в Wireshark, tshark, tcpdump.


«Ethernet-пинг» существует , но работает только на уровне Ethernet, он ничего не скажет об IP. (Иногда это реализуется в самой сетевой плате, но в основном вообще не реализуется.)

«Обратный ARP» также существует, но практически никогда не реализуется - его основное использование было заменено BOOTP и более поздним DHCP.

user1686
источник
2
IP-пинг не работает, но nbtstat -a <computer_name> -cпредоставляет нужный IP-адрес! Благодарность!
Мелебиус
2
Конечно, существует также «экстремальный» метод отправки ARP-запросов на все 65024 IP-адреса и выяснения, на какие из них вы получаете ответ.
kasperd
ОП уже говорит: «Я могу… сканировать IP-адреса, но [это] занимает много времени…».
Скотт
Это не так, если у вас есть хорошие инструменты. Например, Zmap может сканировать весь Интернет IPv4 за считанные часы. Сканирование ARP по адресам 64 Кб может быть очень быстрым.
user1686
6

Если вы настраиваете свою машину для получения IP-адреса от сервера DHCP, то очевидно, что в сети должен быть сервер DHCP. Учитывая, что вы используете прямой кабель (кросс) для подключения обоих компьютеров друг к другу, DHCP-сервер отсутствует, поэтому Windows создает поддельный случайный IP-адрес. По этой причине требуется много времени, чтобы найти друг друга, потому что нет сервера, который управляет соединением для вас.

Лучшим способом было бы добавить в смесь маршрутизатор с DHCP, поскольку это значительно ускорит процесс. Но если вы не хотите тратить деньги на это, ваш второй лучший вариант - вручную настроить IP-адреса на обеих машинах 192.168.0.1и 192.168.0.2с маской подсети255.255.255.0

LPChip
источник
4

Если вторая машина полностью безголовая, вам нужно использовать какой-то DHCP. Либо поместите маршрутизатор между двумя системами, экран состояния которых вы можете просмотреть, либо установите приложение DHCP-сервера на ваш рабочий компьютер, чтобы предоставить системе без заголовка свой адрес.

Зел
источник
1

Вы можете настроить свой компьютер для работы в качестве сервера DHCP.

http://www.dhcpserver.de/cms/ - это то, что я использую. Это займет всего минуту, чтобы настроить, и прекрасно работает.

Просто дайте вашей сетевой карте Ethernet статический IP-адрес (например 169.254.1.1:), подсеть (например:) 255.255.0.0и ничего больше.

Выберите сетевой адаптер Ethernet в качестве адаптера DHCP-сервера в приложении, упомянутом ранее.

Запустите приложение DHCP-сервера, перезапустите сервер или устройство, чей IP-адрес вы ищете, и после загрузки он получит IP-адрес из определенного диапазона DHCP-серверов. Затем вы можете использовать веб-интерфейс, включенный в DHCP-сервер, чтобы увидеть, какой IP-адрес был выдан новому серверу, или просто выполнить проверку всех IP-адресов в диапазоне DHCP.

Быстро, легко и интуитивно понятно. По крайней мере, я так думаю.

Jack_Hu
источник
0

Перед устранением неисправностей обязательно убедитесь, что на сетевом изображении, обращенном к задней панели, видны зеленые статические световые индикаторы. Если они не горят зеленым, вам нужно убедиться, что они подключены через перекрестный кабель. Также убедитесь, что настройки дуплекса для карточек такие же (полный / полудуплекс), иначе вы можете столкнуться с желтым светом.

После того, как зеленый, то вам нужно статически назначить им адреса. Я не рекомендую вам использовать сервер dhcp для назначения, если он находится в вашей рабочей сети (может случиться что-то серьезное, если ваш сервер dhcp начнет отвечать на запросы от других машин, широковещательные рассылки обнаружения dhcp в сети)

NotAdmin Dave
источник
-1

Как насчет того, чтобы пойти к машине № 2 и запустить пинг там! Я предполагаю, что у вас есть физический доступ к компьютеру и права входа в систему.

В зависимости от цели (и операционной системы) этой задачи вы также можете: - Сопоставить с другим компьютером (при условии, что у вас было имя компьютера) и получить нужные файлы - RDP / SSH через имя компьютера.

Пол Дуглас
источник
1
ОП говорит: «К другому компьютеру не подключены периферийные устройства, и я хочу получить к нему доступ с помощью RDP…» в вопросе. Я интерпретирую первую часть этого как означающую, что у него нет клавиатуры или монитора, и, очевидно, ОП знает о RDP. И имя компьютера не волшебная палочка - оно работает, только если первый компьютер «знает», как сопоставить имя с IP-адресом. И весь вопрос в том, что «IP-адреса настраиваются автоматически», поэтому машины не знают адресов друг друга.
Скотт
-1

Я не эксперт, но вы можете просто посмотреть ipconfigв окне cmd, чтобы найти IP-адрес на втором компьютере, который является автоматическим IP-адресом, если нет DHCP, или просто вручную настроить IP-адрес, чтобы он находился в той же сети и подсеть как первый компьютер.

Крис
источник
2
ОП говорит: «На другой машине нет подключенных периферийных устройств…». Я понимаю, что это означает, что у него нет клавиатуры или монитора.
Скотт