Лучше использовать IP-адреса или имена хостов в коде, который зависит от сети? - PullRequest
2 голосов
/ 20 апреля 2011

Если вы программируете приложение, которое интенсивно использует сеть (например, pings, dns resolves и т. Д.), То лучше использовать IP-адреса в коде (например, при создании пути к папке на сервере - //192.183. 181.182 / test / test1 например), или имена хостов?

Я предполагаю, что IP-адреса в организации являются статичными, а имена хостов могут иметь псевдонимы и т. Д. Для одного IP-адреса. Является ли это веской причиной для предпочтения IP-адресов?

Спасибо

Ответы [ 4 ]

5 голосов
/ 20 апреля 2011

Проблема с использованием жестко закодированных IP-адресов заключается в том, что если вам нужно изменить его, вам нужно изменить код, а если вы используете имена хостов, если вам нужно изменить его, вы можете изменить место, куда указывает имя хоста, не касаясь код:)

3 голосов
/ 20 апреля 2011

Полностью согласен с jcarlosn выше и добавляю свои 0,02 доллара в качестве специалиста по сетевой инфраструктуре ...

Как сетевой инженер, я мог бы довольно долго рассказывать о количестве случаев, когда явидели, как люди по ошибке жестко кодируют IP-адрес в приложении, и страдания, которые случаются годами, объясняются тем, что компании приходится компенсировать рост ИТ-инфраструктуры вокруг первоначального предположения о жестко закодированном IP-адресе и подсети в каком-то конкретном объекте.Это влияет на операционные и капитальные затраты компании.

Также рассмотрите, что происходит, когда это приложение развернуто на сотнях ПК, и теперь оно стало критически важным для вашей компании и деловых партнеров.

Пожалуйста, используйте DNS-имена, или если вы чувствуете, что должны использовать ip по какой-то причудливой причине ... используйте локальный файл конфигурации приложения, как предлагается в другом посте.Тем не менее, следует понимать, что файл конфигурации не меняет время простоя корпоративного приложения, которое критично для бизнеса, переносится на новый IP-адрес.Если ваши люди на рабочем столе хороши, они, вероятно, могут переписать файл конфигурации приложения так же быстро, как вы могли бы перенести DNS-имя ... если вы работаете в компании, у которой нет реальных навыков написания сценариев в отделе развертывания рабочего стола, пожалуйста, пересмотрите использование DNS безболее 30 минут TTL на этой записи А.

2 голосов
/ 20 апреля 2011

Есть веские причины для обоих.Многосетевые серверы могут вызывать проблемы при использовании имен (как вы упоминаете), но IP-адреса также не обязательно стабильны, особенно в среде DHCP, в которой не используются резервирования (более распространенные, чем вы думаете).

Если бы это был я, я бы поставил путь / имя хоста / IP в config-, тогда вы можете изменить все, что вам нужно, без перестройки кода.Если вы сами выполняете поиск по имени, просто убедитесь, что ваш код подготовлен для IP-адреса или имени хоста.

1 голос
/ 20 апреля 2011

IPv4-адреса (32-битные адреса) должны устареть в 2012 году (я думаю, что они сняли фильм об этом с землетрясениями и цунами.)

Новых IPv4-адресов уже нет в продаже.

Новый стандарт, IPv6, использует более длинные адреса.

Пусть пользователь решит, сохранит ли он / она имя хоста.Однако имя хоста может иметь более 1 IP-адреса.

Если пользователь предоставляет IP-адрес (v4 или v6), сохраните его.

Если вы получите q MAC-адрес, сохраните его.

Объясните плюсы и минусы пользователей (например, имена стали более статичными).

...