【发布时间】:2013-02-15 17:02:25
【问题描述】:
为了清楚起见,最终编辑 - 在我的环境中,DNS 将只为每个客户端存储一条记录。如果客户端有多个网卡,或者更改子网,则原始 IP 会在 DNS 中注册,直到对应的 DHCP 记录过期(这是 DHCP 注册 DNS 地址的 AD 环境)。
在这种情况下,DNS 有一个不正确的客户端记录。我想通过客户端名称查询 DHCP,以查看租用给它的所有 IP。
我找到的唯一可能的解决方案是从 DHCP 转储所有子网信息(由下面的 API 支持)然后查询,但这在我的环境中是不可行的,因为多人会使用这个应用程序,我不不希望对 DHCP 造成额外压力。
我无法更改 DNS 或 DHCP 的任何配置。
谢谢,
这类似于this的问题,但是使用引用的API(here),我只能通过IP查询。是否可以使用此 API 或任何其他 API 按主机名查询 DHCP? (问题是,DNS 为我提供了 MachineA 的旧 IP,我想从 DHCP 服务器检索 MachineA 租用的任何其他 IP)。
编辑:澄清一下,我想编写一个可以输入主机名的程序,然后它将查询 DHCP 服务器以获取该 DHCP 服务器管理的任何子网中该主机名的所有 IP。这是为了解决具有多个 NIC 的机器注册一个对我无用的 IP(无线)的问题,例如 DNS 结果可能是 NICA(无线)但我想要 NICB(有线)。
【问题讨论】:
-
你在这个 Scott.se 上进行过谷歌搜索吗?试试这个链接ianatkinson.net/computing/dhcpcsharp.htm
-
您不清楚为什么
Dns.GetHostEntry之类的内容不适合您的需求。 -
@DJKRAZE 你好 DJ,如果我正确阅读了这段代码,那与我想要做的有点接近,但并不完全相同。似乎为子网中的客户端提取所有信息(我不知道)。我想尽可能轻松,如果可能的话,只为一个客户提取信息——我希望做一些可以重新分配的东西,所以不想造成不必要的压力
-
@PeterRitchie Peter,如果 nslookup 只返回一个地址,那是否意味着 Dns.GetHostEntry 也只会返回一个?我无法访问 DNS 服务器来查看记录的样子,所以不确定这种方法会带来什么,这就是我探索 DHCP 的原因。