Можно ли дать два IP-адреса для одного и того же имени хоста?

Я хочу дать два IP-адреса для одного имени хоста.
Как в /etc/hosts файл:

xx.x.x.x example     # if system is connected to dhcp  
y.y.yy.y example     # if system is connected to VPN  

Так возможно ли это?

1 ответ

Решение

Это не совсем возможно, как в этом конкретном примере. Ваш файл hosts по сути является частью способности вашей системы сопоставлять имя хоста с IP-адресом. Поэтому, когда ваша система хочет узнать IP-адрес "примера", она получит один IP-адрес в ответ. Файл hosts не позволяет различать разные "типы записей" для его разрешения. Таким образом, для сопоставления имени хоста с IP-адресом вы получаете только один IP-адрес на имя хоста (но несколько имен хостов могут преобразовываться в один и тот же IP-адрес, что является противоположным).

В зависимости от того, что вы делаете, возможно ли использовать внешнюю службу DNS, такую ​​как dyndns.org, для сопоставления постоянного имени хоста, которое будет работать в любой сети, с вашим IP-адресом?

Строго говоря, приведенный выше ответ неверен.

В более старом коде, используя gethostbyname() действительно вернет только один результат.

В более новом коде, используя getaddrinfo()вернет все результаты, и файл /etc/hosts в вопросе будет работать должным образом.

Другие вопросы по тегам