Я хочу дать два 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
Таким образом, действительно ли это возможно?
Это не действительно возможно как в этом определенном примере. Ваш файл hosts по существу является частью способности Вашей системы отобразить имя хоста в IP-адрес. Таким образом, когда Ваша система хочет знать IP-адрес "примера", это получит единственный IP-адрес в ответ. Файл hosts не позволяет никакому способу отличить различные "типы записи" для его разрешения. Таким образом для имени хоста к отображению IP-адреса, Вы только получаете один IP-адрес на имя хоста (но несколько имен хостов могли решить к тому же IP-адресу, который является противоположным).
В зависимости от какого Вы делаете, могло бы быть возможно использовать внешний сервис DNS как dyndns.org для отображения постоянного имени хоста, которое будет работать над любой сетью к IP-адресу?
Строго говоря, приведенный выше ответ неверен.
В старом коде использование gethostbyname()
действительно возвращало только один результат.
В новом коде использование getaddrinfo()
вернет все результаты, а файл /etc/hosts в вопросе будет работать так, как нужно.