私はこれを得ます(FreeNAS 11.2-RELEASE-U1):
Python 3.6.5 (default, Dec 20 2018, 21:27:40)
[GCC 4.2.1 Compatible FreeBSD Clang 6.0.0 (tags/RELEASE_600/final 326565)] on freebsd11
Type "help", "copyright", "credits" or "license" for more information.
>>> import socket
>>> print (socket.gethostname())
backup-server.example.com
>>>
世界保健総会…?
答え1
私の考えでは、それはどんな可能性でも返すと思います。gethostname()
呼ぶする。たとえば、(Linuxの場合でも)次のようになります。
# hostname foobar
# python -c 'import socket; print(socket.gethostname())'
foobar
# hostname foobar.example.org
# python -c 'import socket; print(socket.gethostname())'
foobar.example.org
ホスト名部分だけが必要な場合は、残りの部分を削除することは難しくありません。
# python -c 'import socket; import re; print(re.sub("\..*", "", socket.gethostname()))'
foobar
答え2
Pythonのドキュメントを読んでください。ホスト名の取得返される内容は指定されておらず、FreeBSDには構成にシステムのFQDNが含まれています。
Pythonインタプリタが現在実行されているコンピュータのホスト名を含む文字列を返します。
注:
gethostname()
完全修飾ドメイン名が常に返されるわけではありませんgetfqdn()
。
他のプラットフォームではノード名のみを返すこともできますが、Linuxではドメイン名が元のNIS / Kerberosで使用されていたため、DNSのドメイン名と一致する必要はないため、これは興味深いユースケースです。