如何在Python中获取计算机的完全限定域名?

Jac*_*ing 41 python subdomain dns networking

我知道我可以使用platform.node()来获取我的计算机的网络名称:

>>> import platform
>>> platform.node()
'MyComputerName'
Run Code Online (Sandbox Code Playgroud)

但我真正想要的是类似于以下内容:

>>> get_full_network_domain_name()
'MyComputerName.it.na.mycompany.com'
Run Code Online (Sandbox Code Playgroud)

这样的事情存在吗?

Sve*_*ach 57

完全限定的域名由socket.getfqdn().返回.

  • @semente,`hostname -f`是这样的:`socket.getaddrinfo(socket.gethostname(),0,flags = socket.AI_CANONNAME)[0] [3]`和`getfqdn()`似乎查找主机名在/ etc/hosts中并使用包含点的第一个条目.对我来说,`hostname -f`返回'daniel-thinkpad',`getfqdn()`返回localhost6.localdomain6 (9认同)
  • 对我来说,这不会产生与shell上的`hostname -f`相同的结果.所以要小心. (7认同)
  • @DaniëlvanEeden:谢谢!但是,我的`getaddrinfo`版本不支持关键字参数,因此我不得不使用`socket.getaddrinfo(socket.gethostname(),0,0,0,0,socket.AI_CANONNAME)[0] [3]`代替。 (2认同)