我得到这个(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 中的域名匹配。