【问题标题】:How to get IPAddress using Environment.MachineName?如何使用 Environment.MachineName 获取 IPAddress?
【发布时间】:2015-12-03 07:46:59
【问题描述】:

下面的代码可以使用Environment.MachineName获取我们的IP地址,但Environment.MachineName最多可以返回15个字符,如果该值超过15个字符怎么办?

string IP_Address = Dns.GetHostByName(Environment.MachineName).AddressList[0].toString();

【问题讨论】:

  • 使用空字符串代替(它返回本地计算机信息)。另请注意,您不应该选择第一个条目...它可能会返回多个地址(物理网络和逻辑网络)。
  • 我明白你在说什么repetti,你能写下你所说的陈述吗?

标签: c# .net


【解决方案1】:

您可以使用 Dns.GetHostName()。见:https://msdn.microsoft.com/en-us/library/system.net.dns.gethostname(v=vs.110).aspx

System.Net.Dns.GetHostName() 返回计算机的基于 TCP/IP 主机名。通过向主机名添加域后缀,您可以解析 您的计算机在 LAN 上/互联网上的 IP 地址。

来源: Difference between SystemInformation.ComputerName, Environment.MachineName, and Net.Dns.GetHostName

您可以使用以下命令找到域后缀: https://msdn.microsoft.com/en-us/library/system.net.networkinformation.ipinterfaceproperties.dnssuffix(v=vs.110).aspx

【讨论】:

  • 但攻击者可以欺骗 DNS 主机名,因此 Dns.GetHostName() 不可靠。还有其他更好的方法吗?
  • 恐怕您必须验证 DNS 主机名的合法性。也许这会对您有所帮助:sujithin.wordpress.com/2011/03/19/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-03
  • 2018-10-01
  • 2011-10-17
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
相关资源
最近更新 更多