0

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

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

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

谢谢你能给我的任何帮助。

4

3 回答 3

2

Assigning static IP addresses (even if you ping them) is a bad idea. What happens if the IP address you've assigned is to a device that happens to be offline right now?

Use DHCP if you can, and consider prompting the user if you can not retrieve an IP address from DHCP as to what it should be assigned to.

I am not ware of a native C# library for DHCP client's, but using pinvoke will get you what you're after. Example code (not tested) here, http://www.ianatkinson.net/computing/dhcpcsharp.htm

于 2012-04-16T10:31:06.727 回答
1

好吧,不是很复杂或任何东西,但你为什么不尝试 ping ips,从最低的开始,然后选择第一个没有响应的?

于 2012-04-16T09:49:54.027 回答
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 主机可以使用链路本地寻址来实现有限的本地连接。

于 2012-04-16T09:57:24.790 回答