我不理解这个:
Python 2.7.3 (default, Apr 14 2012, 08:58:41) [GCC] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import socket
>>> socket.getfqdn()
'SR-MW001'
>>> socket.gethostname()
'sr-mw001.foo-domain.de'
这里有什么问题?
根据socket.getfqdn()的文档,应该返回完全限定域名。
更新
更多信息:
/etc/hosts
sr-mw001:~ # grep -iP 'SR-MW001|localhost|foo-domain' /etc/hosts
127.0.0.1 localhost
::1 localhost ipv6-localhost ipv6-loopback
10.189.217.11 SR-MW001 foo-work
IP地址
sr-mw001:~ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 00:50:56:a8:6e:eb brd ff:ff:ff:ff:ff:ff
inet 10.189.217.11/24 brd 10.189.217.255 scope global eth0
valid_lft forever preferred_lft forever
socket.gethostbyaddr()
>>> socket.gethostbyaddr('sr-mw001.stadtwerke-gt.de')
('SR-MW001', ['foo-work'], ['10.189.217.11'])
更多细节:
> uname -n
sr-mw001.foo-domain.de
> hostname
sr-mw001.foo-domain.de
> domainname
(none)
> nisdomainname
-bash: nisdomainname: command not found
> dnsdomainname
foo-domain.de
> ypdomainname
-bash: ypdomainname: command not found
uname -n
、hostname
、domainname
、nisdomainname
、dnsdomainname
、ypdomainname
。此外,您还可以将*/etc/hosts中的grep*搜索扩展到grep -iP 'SR-MW001|localhost|foo-domain\.de' /etc/hosts
吗? - CristiFatisocket.getfqdn()
,如果它不包含任何点,则调用socket.gethostname()
。或者您可以执行subprocess.check_output(["hostname", "--fqdn"]).split("\n")[0]
。 - CristiFati