Например:
Сервер: server1.contoso.com
IP-адреса, присутствующие на сервере: изначально настроенный статически с 10.10.20.100, он имел два дополнительных IP-адреса, добавленных к одному и тому же сетевому адаптеру, 10.10.20.20 и 10.10.20.102.
Запись для server1.contoso.com указывает на 10.10.20.100
При проверке связи server1.contoso.com с другого компьютера возвращается правильный IP-адрес 10.10.20.100. Tracert показывает, что идет по нужным каналам.
При проверке связи server1.contoso.com на server1.contoso.com возвращается значение 10.10.20.20. Tracert показывает, что он не обращается к DNS, и разрешает на сервере самый низкий числовой IP-адрес.
Есть ли какое-то решение для этого? Я пытаюсь написать сценарий, который будет запускаться на сервере и возвращать IP, который был настроен как статический IP в свойствах сетевой карты.
Используя класс WMI, я могу видеть все IP-адреса на этом сетевом адаптере, поэтому до сих пор я предполагал, что первым элементом массива является то, что было настроено, но в идеале я бы предпочел просто обратиться к DNS, чтобы получить IP.
Какие-либо предложения?
Похоже, у вас здесь два противоречивых ожидания. С одной стороны, вы, кажется, ожидаете, что он сделает DNS-запрос. С другой стороны, вы хотите показать «P, который был настроен как статический IP-адрес в свойствах сетевой карты». Из этих двух элементов можно получить противоречивую информацию.
Не имея дополнительной информации, я просто укажу вам на использование записи DNS. Для этого нужно явно запросить DNS-сервер:
PS> [System.Net.Dns]::GetHostAddresses("server1.contoso.com")
И если вы не знаете полное имя хоста во время создания скрипта, используйте его вместо имени сервера:
"$env:computername.$env:userdnsdomain"