【问题标题】:Is there a built-in way to check if an IP address is already occupied?是否有内置方法来检查 IP 地址是否已被占用?
【发布时间】:2011-09-10 05:58:39
【问题描述】:

我的软件更改了计算机的 IP,但我与其他设备发生冲突。是否有内置方法可以在设置之前检查 IP 地址是否已被占用/占用?

谢谢

【问题讨论】:

  • 你是指同一台机器的其他设备(网卡),还是同一子网中其他机器上的设备?

标签: c# ip


【解决方案1】:

如果您的网络不使用 DHCP 并且确实需要手动分配 IP 地址,您可以尝试使用 System.Net.NetworkInformation.Ping class 来查看网络上的主机是否响应。

【讨论】:

  • 假设主机响应 ping。
  • 你的假设是正确的。这看起来很棒,谢谢。 +1 并接受。
  • @user664939 很高兴我能帮上忙; @Phil 也感谢您的宝贵回答。
【解决方案2】:

您可以按照 Donut 的建议使用 System.Net.NetworkInformation.Ping 类,但并非所有设备都会响应 Ping。但是,任何具有 IP 地址的设备都将响应 ARP 请求,前提是它们与网络正常通信。

如果你能找到一种方法来发送一个 ARP 请求,上面写着“谁的 IP 地址为 xxx.xxx.xxx.xxx?”并且您得到响应,然后您就知道其他人拥有该 IP 地址。我个人不知道该怎么做,但是您可以尝试查看this question 以获取有关如何访问 ARP 信息的信息。

另外,this 可能是一个有用的资源。

【讨论】:

  • 我认为 ping 类就足够了(网络上的其他机器应该响应),但是如果我需要它,这看起来是一个更深入的选择。谢谢和 +1。
  • 在大多数情况下,ping 就足够了,我只是提供了一个完整的答案(因为我自己很好奇)。
猜你喜欢
  • 1970-01-01
  • 2013-08-22
  • 2012-11-28
  • 2017-05-21
  • 1970-01-01
  • 2022-01-14
  • 1970-01-01
  • 2020-03-22
  • 2017-05-28
相关资源
最近更新 更多