相关文章推荐
GigsGigsCloud

Python 获取本地主机 hostname 很简单,一行代码就能搞定。获取 IP 地址也一样简单,下面分享一下这些方法。都很简单,基本都是通过 Python 的 socket 库来进行获取的。 Python socket 还是一个非常强大的网络功能库,很多时候配合 socketserver 使用效果更好。

'192.168.1.3'

对于获取 IP 地址,其实 socket.gethostbyname() 很多情况下并不能准确获取到 IP 地址,很多时候会返回一个 127.0.0.1 或者是私有 IP,下面的方法可以更准确的获取 IP 地址(也就是下方的备用方法一):

import socket
def get_host_ip():
    查询本机ip地址
    :return: ip
        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        s.connect(('8.8.8.8', 80))
        ip = s.getsockname()[0]
    finally:
        s.close()
    return ip
if __name__ == '__main__':
    print(get_host_ip())

二、备用方法

备用方法一:

>>> import socket
>>> # 获取主机名
>>> hostname = socket.getfqdn(socket.gethostname())
>>> hostname
'USER-20150331GI'
>>> # 获取IP地址
>>> s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
>>> s.connect(('8.8.8.8', 80))
>>> ip = s.getsockname()[0]
'192.168.1.3'

备用方法二:

>>> import socket
>>> hostname = socket.gethostname()
>>> ip_lists = socket.gethostbyname_ex(hostname)
>>> ip_lists
('USER-20150331GI', [], ['192.168.1.3'])
>>> # 获取主机名
>>> hostname = ip_lists[0]
>>> hostname
'USER-20150331GI'
>>> # 获取IP地址
>>> ip = lst[-1]
['192.168.1.3']

参考文献:

  • https://blog.csdn.net/Jerry_1126/article/details/85482905
  • https://blog.csdn.net/u013314786/article/details/78962103
  • 赞( 0 )
    版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
    文章名称:《 Python 获取本地主机 hostname 和 IP 地址的简单方法
    文章链接: https://oldtang.com/2352.html
    本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
    上一篇
    下一篇

    老唐笔记 – 关注我们

    老唐笔记 – 优惠推送

    QQ 群: 624241306

    TG 群: @oldtang_com

    网站统计

    • 日志总数: 1477
    • 评论总数: 69
    • 标签总数: 6796
    • 页面总数: 1
    • 分类总数: 15
    • 链接总数: 21
    • 用户总数: 1
    • 最后更新: 2023-09-11
     
    推荐文章