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

Pinging имени хоста сервера, на котором я нахожусь, не обращается к DNS, отвечает с 'наименьшим' числовым IP-адресом

Например:

Сервер: 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"