我需要为我们将通过系统连接的设备分配唯一的IP地址(本地)。 USB。实际分配我将通过告诉设备IP是什么来通过RS232(不要问!)。
我想以某种方式找到相对于本地PC的可用地址,以便告诉设备使用哪个。有没有办法在C#中枚举或查找可用的地址?如果可能与其他设备发生冲突,我不想简单地使用固定的。
我在这里进行了搜索,有很多人想要找到当前的IP,或者已经存在的设备的IP,但我找不到太多关于生成可用的,唯一的。
感谢您提供的任何帮助。
答案 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主机可以使用链路本地寻址 实现有限的本地连接。