是否有内置的方法来检查IP地址是否已被占用?
如果您的网络不使用DHCP和IP地址确实需要手动分配,你可以尝试使用System.Net.NetworkInformation.Ping
class,看看网络上的主机响应。
假设主机响应ping。 – Phil 2011-06-07 16:49:26
你的假设是正确的。这看起来不错,谢谢。 +1并接受。 – user664939 2011-06-07 17:02:16
@ 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可能是一个有用的资源。
我认为ping类应该足够了(网络上的其他机器应该会响应),但是如果我需要它,这看起来像是一个更深入的选择。感谢和+1。 – user664939 2011-06-07 17:01:37
在大多数情况下,ping就足够了,我只是提供了完整性的答案(因为我自己很好奇)。 – Phil 2011-06-07 17:05:33
你是指DHCP以外的其他人? – 2011-06-07 16:40:03
您是指同一台计算机的其他设备(NIC)或同一子网中其他计算机上的设备? – Hyperboreus 2011-06-07 16:41:56