是否有内置的方法来检查IP地址是否已被占用?

问题描述:

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

感谢

+0

你是指DHCP以外的其他人? – 2011-06-07 16:40:03

+0

您是指同一台计算机的其他设备(NIC)或同一子网中其他计算机上的设备? – Hyperboreus 2011-06-07 16:41:56

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

+1

假设主机响应ping。 – Phil 2011-06-07 16:49:26

+0

你的假设是正确的。这看起来不错,谢谢。 +1并接受。 – user664939 2011-06-07 17:02:16

+0

@ user664939很高兴我能帮忙; @Phil谢谢你的宝贵回答。 – Donut 2011-06-07 17:28:17

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

如果您可以找到一种方法发送ARP请求,指出“谁的IP地址为xxx.xxx.xxx.xxx?”并且你得到了回应,那么你知道有其他人拥有该IP地址。我个人不知道该如何做到这一点,但你可以试着查看this question了解如何访问ARP信息。

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

+0

我认为ping类应该足够了(网络上的其他机器应该会响应),但是如果我需要它,这看起来像是一个更深入的选择。感谢和+1。 – user664939 2011-06-07 17:01:37

+0

在大多数情况下,ping就足够了,我只是提供了完整性的答案(因为我自己很好奇)。 – Phil 2011-06-07 17:05:33