如何在 Python 中获取计算机的完全限定域名?
Posted
技术标签:
【中文标题】如何在 Python 中获取计算机的完全限定域名?【英文标题】:How do I get my computer's fully qualified domain name in Python? 【发布时间】:2012-07-19 18:28:45 【问题描述】:我知道我可以使用 platform.node() 来获取我的计算机的网络名称:
>>> import platform
>>> platform.node()
'MyComputerName'
但我真正想要的是类似于以下内容的东西:
>>> get_full_network_domain_name()
'MyComputerName.it.na.mycompany.com'
这样的东西存在吗?
【问题讨论】:
【参考方案1】:完全限定域名由socket.getfqdn()
返回。
【讨论】:
谢谢,“完全合格的域名”是我正在寻找的短语! 对我来说,这不会产生与 shell 上的hostname -f
相同的结果。所以要小心。
@DaniëlvanEeden,你知道它返回的情况和hostname -f
不一样吗?
@semente , hostname -f
是这样的:socket.getaddrinfo(socket.gethostname(), 0, flags=socket.AI_CANONNAME)[0][3]
和 getfqdn()
似乎在 /etc/hosts 中查找主机名并使用包含点的第一个条目。对我来说,hostname -f
返回“daniel-thinkpad”,getfqdn()
返回 localhost6.localdomain6
@DaniëlvanEeden:谢谢!但是,我的getaddrinfo
版本不支持关键字参数,所以我不得不改用socket.getaddrinfo(socket.gethostname(), 0, 0, 0, 0, socket.AI_CANONNAME)[0][3]
。以上是关于如何在 Python 中获取计算机的完全限定域名?的主要内容,如果未能解决你的问题,请参考以下文章