1

私はfqdnとホスト名が何であるかを知っています。しかし、この2つのスニペットが異なる結果を返す理由はまだわかりません。
は、実際にはWindowsのipconfigコマンドで表示されるイーサネットアダプタのsocket.gethostbyname(socket.gethostname())IPアドレスであるIPアドレスを返します。しかしsocket.gethostbyname(socket.getfqdn())、イーサネットとpppのどちらでもない、ipconfig表示に表示されないIPアドレスを返します。それは何ですか?
gethostnameの結果は、ローカルネットワークに関連するIPアドレスであり、ネット全体に関連するgetfqdnですか?
リモートネットワークにいてコンピューターを接続したい場合、またはコンピューターと同じネットワークにいる場合は、2つのうちどちらを使用すればよいですか?
実際、この2つのスニペットをオフラインで試してみると、どちらも127.0.0.1を返します。

4

1 に答える 1

0

これらのコマンドをオフラインで実行すると、127.0.0.1 が返されます。これは、/etc/hosts のデフォルト マッピングが 127.0.0.1 localhost であるためです。したがって、あなたはgethostname()localhost に解決され、gethostbyname()127.0.0.1 です。

gethostbyname()親ドメイン名の IP または getfqdn() と gethostname() の完全修飾ドメイン名の IP をそれぞれ返すと思います。違うかもしれないし、違うかもしれない。

于 2013-07-12T21:34:31.137 に答える