是否可以在 Java 程序中访问 Windows 机器的 ipconfig/all 输出的“特定于连接的 DNS 后缀”字段中包含的字符串?
例如:
C:>ipconfig/all
以太网适配器本地连接:
Connection-specific DNS Suffix . : myexample.com <======== This string
Description . . . . . . . . . . . : Broadcom NetXtreme Gigabit Ethernet
Physical Address. . . . . . . . . : 00-30-1B-B2-77-FF
Dhcp Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
IP Address. . . . . . . . . . . . : 192.168.1.66
Subnet Mask . . . . . . . . . . . : 255.255.255.0
我知道 getDisplayName() 会返回描述(例如:上面的 Broadcom NetXtreme 千兆以太网),getInetAddresses() 会给我一个绑定(bind)到这个网络接口(interface)的 IP 地址列表。
但是还有读取“特定于连接的 DNS 后缀”的方法吗?
最佳答案
好的,所以我想出了如何在 Windows XP 和 Windows 7 上执行此操作:
- 字符串(例如:myexample.com) 包含在特定于连接的 每个网络的 DNS 后缀字段 输出中列出的接口(interface) ipconfig/all 可以在 登记处 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces{GUID} (其中 GUID 是 感兴趣的网络接口(interface))作为 名为 DhcpDomain 的字符串值(类型 REG_SZ)。
- 在 Java 中访问 Windows 注册表项并不简单,但通过巧妙地使用反射,可以访问在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\下找到的所需网络适配器的 key ,然后读取字符串名称为 DhcpDomain 的数据元素;它的值是必需的字符串。
- 有关示例,请参阅以下链接 访问 Windows 注册表 来自 java :
关于java - 如何访问 Java 中每个网络接口(interface)的特定于连接的 DNS 后缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6134790/