我有 c# 桌面应用程序。
我有一个 IP 摄像头,我想给它分配一个静态 IP 地址。我需要能够从我的 dhcp 服务器获取一个“空闲/可用”的 IP 地址,保留它并将其分配给我的 IP 摄像头。我可以很容易地将 IP 地址分配给我的摄像头。但是,在将它分配给“插入”我网络的另一个设备之前,我如何获取可用的 IP 地址并保留它?
我已经看到了获取客户端 IP 地址的 api 调用,但不知道是否可以将它用于我想要的目的。
我可以 ping 子网上的每个 IP 地址,以查找某个地址是否可用,但这似乎效率不高,因为我需要等待 ping 该地址的超时时间。此外,它不会“保留”它。
我希望我说清楚了?
注意:我想为我的 IP 摄像头分配一个静态 IP 地址。我有 SDK 可以做到这一点。只是我需要分配一个位于同一子网的免费 IP 地址
答案1
您无法从 DHCP 服务器获取“空闲/可用”地址列表,因为它根本没有协议来通知您。它只能从其池中为您提供一个 IP。
我建议你去读读关于 DHCP 的一些信息,至少概述一下?
您能做的最好的事情是通过您的 DHCP 服务器配置设置静态 DHCP 保留,这样每次您的相机请求 IP 时它都会获得相同的 IP,然后在您的应用程序中设置该 IP。
我还建议您在 DHCP 范围内设置一些“静态保留”范围。假设 DHCP 将使用 192.168.100.0...255 IP,养成一个好习惯,让它使用不是来自 .1 八位字节的 IP,而是来自 .32 八位字节的 IP。这样,您可以在 DHCP 中在 .2-.31 范围内静态分配 IP(我以前对路由器本身使用 .1),这样它就不会与动态 IP 范围交叉。或者,您可以通过摄像头控制面板在相同的 .2-.31 范围内简单地设置静态 IP,而不必担心 DHCP 保留。
答案2
DHCP 不支持此功能。要么您的相机需要支持运行 DHCP 客户端,要么您的软件需要向用户询问应分配给相机的静态 IP。他们可能需要联系其网络管理员来查找正确的地址。