Назад | Перейти на главную страницу

Определение IP-адреса компьютера (через брандмауэр)

Я ищу способ найти IP-адрес компьютера, подключенного к сети.

Сценарий следующий:

Я читал, что для этого можно использовать ping и nslookup. Сначала в качестве теста я попробовал ping и nslookup со случайным именем хоста и получил их IP-адрес, как указано. Вот.

Затем я попробовал (просто чтобы проверить) это на ПК со статическим IP. Когда я сделал

ping CompName

Я получил IP адрес

однако когда я попробовал

nslookup CompName

У меня не получается файл: сбой сервера

Даже если я смогу сделать это с помощью команды ping, что произойдет, если целевой компьютер окажется за брандмауэром?

Когда вы выполняете эхо-запрос, вы сначала инициируете разрешение имени для имени компьютера. На современных машинах с Windows обычно используется «разрешение имени хоста», хотя в некоторых случаях используется «разрешение NetBIOS».

Разрешение имени хоста

При разрешении имени хоста обычно используется следующая последовательность:

  • Клиент проверяет, является ли запрошенное имя его собственным.
  • Затем клиент выполняет поиск в локальном файле Hosts.
  • Запрашиваются серверы системы доменных имен (DNS).
  • Если имя все еще не разрешено, последовательность разрешения имен NetBIOS может использоваться в качестве резервной копии.

Итак, в описанном вами сценарии целевой компьютер определенно не будет вашим компьютером (не «locahost»). Маловероятно, что он будет в вашем локальном файле hosts, если вы не поместите его туда, поэтому мы полагаемся либо на DNS, либо на убеждение компьютера сообщить вам его IP-адрес.

NSLOOKUP - это инструмент для точного запроса базы данных DNS выбранного DNS-сервера. Ответ @ Mikael-H объясняет, почему динамический IP-адрес может или не может быть найден в базе данных DNS. Если ответ находится в DNS, вы найдете его с помощью NSLOOKUP, и если условия не подходят для обнаружения динамического IP-адреса, вы сможете исправить это, если вы контролируете сеть.

База данных DHCP

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

Разрешение ARP

Если вы знаете MAC-адрес целевого компьютера, вы можете легко узнать IP-адрес даже при довольно строгом брандмауэре. Отправьте пинг на broadcast address (что-то вроде 192.168.2.255 в сети / 24). Это не разрешится, но последует команда arp -a, и будут показаны все записи ARP в подсети. Вы должны увидеть там свой целевой компьютер.

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

Статус брандмауэра отдельного компьютера не влияет на способность DHCP-серверов взаимодействовать с DNS-сервером.

Компьютеры, на которых настроены статические IP-адреса, могут или не могут автоматически регистрироваться в DNS в зависимости от ряда обстоятельств и параметров конфигурации.

Когда дело доходит до фактического взаимодействия с компьютерами после того, как вы получили их имя хоста или IP-адрес, вам, естественно, необходимо настроить брандмауэр, чтобы разрешить некоторый минимальный необходимый объем входящего трафика. С точки зрения безопасности желательно, чтобы большая часть трафика исходила с большинства компьютеров, а не выламывала бреши в локальном брандмауэре, позволяя получать данные напрямую извне. В долгосрочной перспективе это сведет к минимуму проблемы с управлением безопасностью. Успешное выполнение этого, вероятно, потребует настройки инструментов управления или -агентов, которые позволят вам удаленно запускать исходящие действия на машинах безопасным способом.