查找主机时定义自定义 DNS 服务器

查找主机时定义自定义 DNS 服务器

我当前网络主机的 DNS 服务器出现问题,无法正确解析百度的 IP 地址。

shell_exec('host -W 2 180.76.5.168');
shell_exec('nslookup 180.76.5.168');

在尝试解析主机时,有没有办法可以定义自己的 DNS 服务器地址?

引用我的本地主机结果的输出...

主机:baiduspider-180-76-5-168.crawl.baidu.com

服务器:Wireless_Broadband_Router.home 地址:192.168.1.1 名称:baiduspider-180-76-5-168.crawl.baidu.com 地址:180.76.5.168

答案1

在尝试解析主机时,有没有办法可以定义自己的 DNS 服务器地址?

是的,我们可以使用以下方法。

方法 #1 - 所有方法尝试从 Google 公共 DNS 解析,您可以根据需要进行更改。

nslookup  180.76.5.168  8.8.8.8

方法#2

dig -x 180.76.5.168 @8.8.8.8

方法#3

host -W 2 180.76.5.168  8.8.8.8

答案2

在 Unix 系统上,有一个名为 的文件nsswitch.conf,它控制如何解析各种事物的名称。例如,主机名将由该文件中的这一行控制:

hosts:      files mdns4_minimal [NOTFOUND=return] dns

这行说:

  • 首先查看“文件”(例如/etc/hosts)。
  • 接下来尝试“mdns4_minimal”,这意味着尝试使用多播 DNS 解析名称。
  • “NOTFOUND”意味着前面的 mdns4_minimal 进程的任何 notfound 响应都应被视为权威,并且系统不应尝试继续寻找答案。
  • 最后,“dns”参数表示使用旧版单播 DNS 查询。

当尝试通过 mdns4_minimal 解析名称时,/etc/resolv.conf将查阅该文件以确定以下内容:

  • 要查询的名称服务器
  • 默认搜索域名
  • 默认域名

例如:

# Generated by NetworkManager
domain somedom.net.
search somedom.net.
nameserver 192.168.1.101
nameserver 8.8.8.8
nameserver 8.8.4.4

因此,要在 @RahulPatil 在其答案中列出的选项之外控制默认 DNS 服务器,您需要更改/etc/resolv.conf文件中的 DNS 服务器。

参考

相关内容