我正在构建一个VPN应用程序,我需要以编程方式设置DNS服务器。我正在更改注册表中的NameServer
参数(在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
中)以将名称服务器添加到现有条目列表中。一旦我这样做,如果我尝试使用nslookup
查找主机名,它可以正常工作,但ping
无法解析名称 - 持续15分钟。并且15分钟后ping也能够解析名称。我已经尝试了自己的小TCP / IP应用程序,这也有同样的问题。我查看了wireshark中的流量,我看到nslookup正在发送dns查找请求,而ping不是。
无论如何,我可以踢窗户以提前通知名称服务器吗?或者有更好的方法在Windows中设置名称服务器?
提前感谢您的帮助!
答案 0 :(得分:4)
请勿直接更改该注册表项。如您所见,它不会通知DNS客户端名称服务器已更改。
最简单的解决方案可能是%SystemRoot%\system32\netsh.exe
。
netsh interface ip set dns name="Local Area Connection" source=static addr=...