【发布时间】:2009-10-01 15:45:20
【问题描述】:
在 win32 多网卡计算机上,如果所有网卡都配置了不同的 DNS 并具有相同的指标,如何强制通过 gethostbyname() 在特定网卡上进行 DNS 解析?
否则,如何知道应用程序每次执行 gethostbyname() 调用时将使用哪个 DNS 来解析名称?
【问题讨论】:
标签: windows networking
在 win32 多网卡计算机上,如果所有网卡都配置了不同的 DNS 并具有相同的指标,如何强制通过 gethostbyname() 在特定网卡上进行 DNS 解析?
否则,如何知道应用程序每次执行 gethostbyname() 调用时将使用哪个 DNS 来解析名称?
【问题讨论】:
标签: windows networking
你不能这样做,至少我相当肯定你不能指定一个接口来使用 gethostbyname() 或任何标准套接字实用程序发送查询。 (可能有一个非常深奥的 win32 选项,但我反对它)
如果您绝对需要此功能,则需要选择一个第三方 DNS 库来为您提供这种功能……或者甚至从 scatch 中编写一个。
该库需要为您提供一种绑定 UDP 套接字的方法,该套接字将向指定地址发出 DNS 查询。
也可能有一种方法可以将 Windows 配置为使用系统设置从接口发出 DNS 查询,但我强烈怀疑是否有一种方法可以在程序中执行此操作。
【讨论】:
https://serverfault.com/ 可能会更好地回答这个问题,这是一个更适合管理机器的站点。 SO 最适合编程。
【讨论】:
考虑使用原始套接字并实现您自己的 DNS 查询机制。
【讨论】: