最好在依赖网络的代码中使用IP地址或主机名?

时间:2011-04-19 23:04:05

标签: c# networking dns ip reliability

如果您正在编写一个大量使用网络的应用程序(例如ping,dns解析等),最好在代码中使用IP地址(例如,如果在服务器上创建文件夹路径 - //192.183。 181.182 / test / test1例如)或主机名?

我假设IP地址,因为它们在企业中往往是静态的,并且主机名可以在单个IP地址上具有别名等。这是偏好IP地址的正当理由吗?

由于

4 个答案:

答案 0 :(得分:5)

使用硬编码IP地址的问题是,如果您需要更改它,您需要更改代码,而如果您使用主机名,如果您需要更改它,您可以更改主机名所指的位置,而无需触及代码:)

答案 1 :(得分:3)

完全同意上面的jcarlosn,并投入0.02美元作为网络基础设施......

作为一名网络工程师,我可以继续讨论我看到人们错误地将IP硬编码到应用程序中的实例数量,以及多年来由于公司不得不扭曲所带来的痛苦IT基础设施的增长围绕着某个特定设施中硬编码IP和子网的原始假设。这会对公司的运营和资本支出产生影响。

还要考虑当该应用程序部署在数百台PC上时会发生什么,现在已成为您公司和业务合作伙伴的关键业务。

请使用DNS名称,或者如果您认为必须使用ip出于某些奇怪的原因...使用本地应用程序配置文件,如另一篇文章中所建议的那样。请理解,配置文件不会更改关键业务应用程序的企业停机时间,以便迁移到新的IP地址。如果您的桌面用户很好,他们可能会像您迁移DNS名称一样快速重写应用程序配置文件...如果您在桌面部署部门没有真正的脚本技能的公司工作,请重新考虑使用DNS而不是A记录上的TTL超过30分钟。

答案 2 :(得分:2)

两者都有正当理由。多宿主服务器在使用名称时会引起问题(如您所述),但IP地址也不一定稳定 - 尤其是在不使用预留的DHCP环境中(比您想象的更常见)。

如果是我,我会将路径/主机名/ IP放在配置中 - 然后您可以更改为所需的任何内容而无需重建代码。如果您在内部进行名称查找,请确保您的代码已准备好用于IP或主机名。

答案 3 :(得分:1)

IPv4地址(32位地址)应该在2012年过时, (我认为他们制作了一部关于地震和海啸的电影。)

目前还没有新的IPv4地址可供出售。

新标准IPv6使用了更长的地址。

让用户决定,如果他/她有主机名,则存储该主机名。 但是,主机名可能有多个IP地址。

如果用户提供IP地址(v4或v6),请存储该地址。

如果你得到q MAC地址,请存储。

解释用户的利弊(例如,名字吃得更静)。