我有一个在 Windows 2003 Server 上运行的 DHCP 服务器。我想查询租约数据库以查找特定 IP 的租约详细信息。如何从 Linux 远程执行此操作?
在Windows XP上有这个命令:
netsh dhcp server <type.srvIP.here> scope s.s.s.s show client | find "clientIP"
10.1.1.100 - 255.255.255.0 -10-12-34-56-78-9a - NEVER EXPIRES -D
我在 Windows DHCP 服务器 2003 上寻求 IP / MAC 地址与租约之间的对应关系。
答案1
为什么不尝试操作系统? 它允许您从类 Unix 系统访问 Windows 控制台。
答案2
我不相信有可以在 *nix 平台上远程执行此操作的工具。大多数文档会告诉您直接在服务器上读取 dhcpd.leases 文件,然后从那里手动收集所需的信息。您可以编写 perl(或其他类似)脚本来执行此操作,但我尚未找到可用的脚本。
答案3
无论 DHCP 服务器是什么操作系统,租约都必须存储在 dhcp 客户端上,即使只是为了知道何时必须续订租约。租约存储在哪里取决于您的 dhcp 客户端和您的操作系统。
在 OpenBSD 上,租约历史记录存储在 /var/db/dhclient.lease.interfacename 中。要查看它,您可以使用“cat”和 tail(仅显示最后一个租约):
benoit@alix [/var/db] sudo cat dhclient.leases.vr2 | tail -14
Password:
lease {
interface "vr2";
fixed-address nnn.nnn.nnn.nnn;
server-name "dhcp.server.fqdn";
option subnet-mask nnn.nnn.nnn.nnn;
option routers nnn.nnn.nnn.nnn;
option broadcast-address nnn.nnn.nnn.nnn;
option dhcp-lease-time 604800;
option dhcp-message-type 5;
option dhcp-server-identifier nnn.nnn.nnn.nnn;
renew 3 2009/9/30 08:39:39;
rebind 5 2009/10/2 23:39:39;
expire 6 2009/10/3 20:39:39;
}
查看你的操作系统或你的机器上运行的 dhcp 客户端的手册页,它必须包含此信息。
答案4
我不想在 *nix dhcpd 服务器上读取租约,而是在 windows 2003 dhcp 服务器上读取租约
您是否考虑过在 Windows 机器上简单地设置 SSH 服务器?安装完成后,您所要做的就是简单地 ssh 并运行 netsh。
我无法在我的 Windows 机器上安装任何东西,因为它是我的域控制器。
那你可能就没那么幸运了。
我能想到的唯一其他事情就是简单地要求 Windows 管理员设置一个脚本,该脚本使用“netsh”定期将 dhcp 数据库转储到您可以查看的文件中。