現在、ネットワークホストのDNSサーバーに問題があるため、BaiduのIPアドレスを正しく確認できません。
shell_exec('host -W 2 180.76.5.168');
shell_exec('nslookup 180.76.5.168');
ホストを確認しようとするときに独自のDNSサーバーアドレスを定義する方法はありますか?
私のlocalhost結果の出力を引用すると...
ホスト: 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 Public 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
nsswitch.conf
Unixシステムには、さまざまなアイテムの名前を解析する方法を制御するファイルがあります。たとえば、ホスト名はファイルの次の行で制御されます。
hosts: files mdns4_minimal [NOTFOUND=return] dns
この行は次のように言います。
- まず、「ファイル」(例
/etc/hosts
:)を見てください。 - 次に、「mdns4_minimal」を試してみてください。これは、マルチキャストDNSを使用して名前解決を試みることを意味します。
- 「NOTFOUND」は、以前のmdns4_minimalプロセスの見つからなかった応答が信頼できると見なされるべきであり、システムがまだ答えを見つけようとしないことを意味します。
- 最後に、「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サーバーを変更する必要があります。