Я ищу способ найти IP-адрес компьютера, подключенного к сети.
Сценарий следующий:
Я читал, что для этого можно использовать ping и nslookup. Сначала в качестве теста я попробовал ping и nslookup со случайным именем хоста и получил их IP-адрес, как указано. Вот.
Затем я попробовал (просто чтобы проверить) это на ПК со статическим IP. Когда я сделал
ping CompName
Я получил IP адрес
однако когда я попробовал
nslookup CompName
У меня не получается файл: сбой сервера
Даже если я смогу сделать это с помощью команды ping, что произойдет, если целевой компьютер окажется за брандмауэром?
Когда вы выполняете эхо-запрос, вы сначала инициируете разрешение имени для имени компьютера. На современных машинах с Windows обычно используется «разрешение имени хоста», хотя в некоторых случаях используется «разрешение NetBIOS».
При разрешении имени хоста обычно используется следующая последовательность:
Итак, в описанном вами сценарии целевой компьютер определенно не будет вашим компьютером (не «locahost»). Маловероятно, что он будет в вашем локальном файле hosts, если вы не поместите его туда, поэтому мы полагаемся либо на DNS, либо на убеждение компьютера сообщить вам его IP-адрес.
NSLOOKUP - это инструмент для точного запроса базы данных DNS выбранного DNS-сервера. Ответ @ Mikael-H объясняет, почему динамический IP-адрес может или не может быть найден в базе данных DNS. Если ответ находится в DNS, вы найдете его с помощью NSLOOKUP, и если условия не подходят для обнаружения динамического IP-адреса, вы сможете исправить это, если вы контролируете сеть.
Конечно, стоит упомянуть, что если у вас есть доступ к DHCP-серверу, вы можете найти имя и IP-адрес компьютера в базе данных DHCP. Было бы полезно узнать MAC-адрес компьютера или когда он впервые запросил IP.
Если вы знаете MAC-адрес целевого компьютера, вы можете легко узнать IP-адрес даже при довольно строгом брандмауэре. Отправьте пинг на broadcast address
(что-то вроде 192.168.2.255 в сети / 24). Это не разрешится, но последует команда arp -a, и будут показаны все записи ARP в подсети. Вы должны увидеть там свой целевой компьютер.
Если в сети настроен динамический DNS, серверы DHCP должны зарегистрировать предоставленные им компьютеры с IP-адресами в базе данных DNS. Однако не все сети.
Статус брандмауэра отдельного компьютера не влияет на способность DHCP-серверов взаимодействовать с DNS-сервером.
Компьютеры, на которых настроены статические IP-адреса, могут или не могут автоматически регистрироваться в DNS в зависимости от ряда обстоятельств и параметров конфигурации.
Когда дело доходит до фактического взаимодействия с компьютерами после того, как вы получили их имя хоста или IP-адрес, вам, естественно, необходимо настроить брандмауэр, чтобы разрешить некоторый минимальный необходимый объем входящего трафика. С точки зрения безопасности желательно, чтобы большая часть трафика исходила с большинства компьютеров, а не выламывала бреши в локальном брандмауэре, позволяя получать данные напрямую извне. В долгосрочной перспективе это сведет к минимуму проблемы с управлением безопасностью. Успешное выполнение этого, вероятно, потребует настройки инструментов управления или -агентов, которые позволят вам удаленно запускать исходящие действия на машинах безопасным способом.