查找并为设备分配唯一的IP地址

时间:2012-04-16 09:45:40

标签: c# ip

我需要为我们将通过系统连接的设备分配唯一的IP地址(本地)。 USB。实际分配我将通过告诉设备IP是什么来通过RS232(不要问!)。

我想以某种方式找到相对于本地PC的可用地址,以便告诉设备使用哪个。有没有办法在C#中枚举或查找可用的地址?如果可能与其他设备发生冲突,我不想简单地使用固定的。

我在这里进行了搜索,有很多人想要找到当前的IP,或者已经存在的设备的IP,但我找不到太多关于生成可用的,唯一的。

感谢您提供的任何帮助。

3 个答案:

答案 0 :(得分:2)

分配静态IP地址(即使你ping它们)也是一个坏主意。 如果您分配的IP地址是当前正在离线的设备,会发生什么情况?

如果可以,请使用DHCP,并考虑提示用户是否无法从DHCP检索IP地址以确定应分配给它的位置。

我不是DHCP客户端的本地C#库的软件,但使用pinvoke可以获得您所追求的内容。示例代码(未经测试),http://www.ianatkinson.net/computing/dhcpcsharp.htm

答案 1 :(得分:1)

好吧,不是真的很复杂或者其他什么,但你为什么不试着ping ips,从最低点开始,然后选择第一个没有响应的?

答案 2 :(得分:1)

来自http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol

  

动态主机配置协议(DHCP)是一个网络   Internet协议(IP)网络上主机的配置协议。   必须先配置连接到IP网络的计算机   他们可以与其他主机通信。最重要的信息   需要的是IP地址,默认路由和路由前缀。 DHCP   消除了网络管理员的手动任务。它也是   提供连接到的设备的中央数据库   网络并消除重复的资源分配。此外   IP地址,DHCP还提供其他配置信息,   特别是本地域名服务器(DNS)的IP地址,   网络引导服务器或其他服务主机。 DHCP用作IPv4   以及IPv6。虽然两个版本的用途相同,但是   IPv4和IPv6协议的细节有很大不同   它们可能被视为单独的协议。[1]没有的主机   使用DHCP进行地址配置仍然可以使用它来获取其他地址   配置信息。或者,IPv6主机可以使用无状态   地址自动配置。 IPv4主机可以使用链路本地寻址   实现有限的本地连接。