【问题标题】:How do I get my computer's fully qualified domain name in Python?如何在 Python 中获取计算机的完全限定域名?
【发布时间】:2012-07-19 18:28:45
【问题描述】:

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

>>> import platform
>>> platform.node()
'MyComputerName'

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

>>> get_full_network_domain_name()
'MyComputerName.it.na.mycompany.com'

这样的东西存在吗?

【问题讨论】:

    标签: python networking dns subdomain


    【解决方案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]
    最近更新 更多