190429-Python之获取本机ip地址

文章目录
  1. 1. 方法一
  2. 2. 方法二
  3. 3. 方法三
  • II. 其他
    1. 1. 一灰灰Blog: https://liuyueyi.github.io/hexblog
    2. 2. 声明
    3. 3. 扫描关注
  • 环境区分,一种常见的case就是根据ip地址段进行界定,通过给开发环境,测试环境和生成环境映射到不同的ip地址段机器,因此也就有了获取ip地址的需求

    1. 方法一

    通过主机名获取主机ip方式

    1
    2
    import socket
    socket.gethostbyname(socket.gethostname())

    然而上面这个并不是总能返回正确的结果,如下面的case,返回127.0.0.1

    case0

    2. 方法二

    1
    2
    3
    4
    5
    6
    import socket
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    s.connect(('8.8.8.8', 80))
    ip = s.getsockname()[0]
    print(ip)
    s.close()

    同样的机器,执行后结果如下

    case1

    3. 方法三

    使用第三方库 netifaces

    安装命令

    1
    pip install netifaces

    mac版本使用case如下

    1
    2
    import netifaces as ni
    ni.ifaddresses('en0')[ni.AF_INET]

    case2

    linux的一个使用case如下

    1
    2
    3
    4
    import netifaces
    # 打印所有的网卡
    netifaces.interfaces()
    netifaces.ifaddresses('enp1s0')[2]

    case3

    II. 其他

    1. 一灰灰Bloghttps://liuyueyi.github.io/hexblog

    一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛

    2. 声明

    尽信书则不如,已上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激

    3. 扫描关注

    一灰灰blog

    QrCode

    知识星球

    goals

    # Python

    评论

    Your browser is out-of-date!

    Update your browser to view this website correctly. Update my browser now

    ×