分享Python获取本机IP地址的几种方法


Posted in Python onMarch 17, 2022

1、使用专用网站

获取的是公网IP

网址:http://myip.ipip.net

代码:

import requests
res = requests.get('http://myip.ipip.net', timeout=5).text
print(res)

比较喜欢用这个,在命令窗口也能使用:

curl http://myip.ipip.net

分享Python获取本机IP地址的几种方法

2、使用自带socket库

获取的是局域网IP。

import socket
# 函数 gethostname() 返回当前正在执行 Python 的系统主机名
res = socket.gethostbyname(socket.gethostname())
print(res)

但是上面这个获取的不是公网IP,结果也不稳定(这里获取了虚拟机下的IP),不建议使用。

分享Python获取本机IP地址的几种方法

 如果计算机设备有连接到 Internet 的路由,可以使用:

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
print(s.getsockname()[0])

这个获得的是局域网IP:

分享Python获取本机IP地址的几种方法

可以ipconfig看一下:

分享Python获取本机IP地址的几种方法

另一个适用于所有接口。它还适用于所有公共、私有、外部 IP。这种方法在 Linux、Windows 和 OSX 上很有效。

import socket
def extract_ip():
    st = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    try:       
        st.connect(('10.255.255.255', 1))
        IP = st.getsockname()[0]
    except Exception:
        IP = '127.0.0.1'
    finally:
        st.close()
    return IP
print(extract_ip())

注意:如果本身局域网IP就是公网IP的话,那这个获得的,可以认为是公网IP了。

3、使用第三方netifaces库

获取的是局域网IP。

netifaces 模块用于提供有关网络接口及其状态的信息。

代码:

没装的先装一下库

pip3 install netifaces

然后使用:

from netifaces import interfaces, ifaddresses, AF_INET
for ifaceName in interfaces():
    addresses = [i['addr'] for i in ifaddresses(ifaceName).setdefault(AF_INET, [{'addr':'No IP addr'}] )]
    print(' '.join(addresses))

分享Python获取本机IP地址的几种方法

到此这篇关于分享Python获取本机IP地址的几种方法的文章就介绍到这了,更多相关Python获取本机IP方法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
老生常谈python的私有公有属性(必看篇)
Jun 09 Python
Python查找两个有序列表中位数的方法【基于归并算法】
Apr 20 Python
浅谈pytorch和Numpy的区别以及相互转换方法
Jul 26 Python
详解PyCharm安装MicroPython插件的教程
Jun 24 Python
PIL对上传到Django的图片进行处理并保存的实例
Aug 07 Python
对Python中一维向量和一维向量转置相乘的方法详解
Aug 26 Python
python读取指定字节长度的文本方法
Aug 27 Python
python字符串的index和find的区别详解
Jun 20 Python
Python如何爬取b站热门视频并导入Excel
Aug 10 Python
学会迭代器设计模式,帮你大幅提升python性能
Jan 03 Python
python中的装饰器该如何使用
Jun 18 Python
python常见的占位符总结及用法
Jul 02 Python
使用python求解迷宫问题的三种实现方法
Python超详细分步解析随机漫步
yolov5返回坐标的方法实例
Mar 17 #Python
PyTorch中的torch.cat简单介绍
Mar 17 #Python
Python Pygame实战在打砖块游戏的实现
python超详细实现完整学生成绩管理系统
Mar 17 #Python
Python Pygame实战之塔防游戏的实现
You might like
回首过去10年中最搞笑的10部动漫,哪一部让你节操尽碎?
2020/03/03 日漫
php数据结构与算法(PHP描述) 查找与二分法查找
2012/06/21 PHP
PHP的foreach中使用引用时需要注意的一个问题和解决方法
2014/05/29 PHP
PHP添加图片水印、压缩、剪切的封装类
2015/08/17 PHP
遍历echsop的region表形成缓存的程序实例代码
2016/11/01 PHP
php中青蛙跳台阶的问题解决方法
2018/10/14 PHP
PHP的简单跳转提示的实现详解
2019/03/14 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
JavaScript Date对象使用总结
2009/05/14 Javascript
js DOM模型操作
2009/12/28 Javascript
js获取或设置当前窗口url参数的小例子
2013/10/14 Javascript
jquery div拖动效果示例代码
2013/12/08 Javascript
JS学习之表格的排序简单实例
2016/05/16 Javascript
完美实现八种js焦点轮播图(上篇)
2016/07/18 Javascript
JS几个常用的函数和对象定义与用法示例
2020/01/15 Javascript
分享一款超好用的JavaScript 打包压缩工具
2020/04/26 Javascript
vue+axios全局添加请求头和参数操作
2020/07/24 Javascript
JavaScript实现通讯录功能
2020/12/27 Javascript
[01:08:00]Fnatic vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python中的__init__ 、__new__、__call__小结
2014/04/25 Python
TensorFlow基本的常量、变量和运算操作详解
2020/02/03 Python
Python实现查找数据库最接近的数据
2020/06/08 Python
Python通过getattr函数获取对象的属性值
2020/10/16 Python
美国电子产品主要品牌的授权在线零售商:DataVision
2019/03/23 全球购物
Sarenza德国:法国最大的时尚鞋和包包网上商店
2019/06/08 全球购物
化工工艺专业求职信
2013/09/22 职场文书
学生安全教育材料
2014/02/14 职场文书
我们的节日中秋活动方案
2014/08/19 职场文书
远程培训的心得体会
2014/09/01 职场文书
公安交警个人对照检查材料思想汇报
2014/10/01 职场文书
毕业生自荐信范文
2015/03/05 职场文书
电影建党伟业观后感
2015/06/01 职场文书
简历中的自我评价应该这样写!
2019/07/12 职场文书
Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
2021/06/07 Python
python图像处理 PIL Image操作实例
2022/04/09 Python
分享几个实用的CSS代码块
2022/06/10 HTML / CSS