分享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 示例分享---逻辑推理编程解决八皇后
Jul 20 Python
Python的Flask框架中Flask-Admin库的简单入门指引
Apr 07 Python
Python设计足球联赛赛程表程序的思路与简单实现示例
Jun 28 Python
利用Python-iGraph如何绘制贴吧/微博的好友关系图详解
Nov 02 Python
Python语言描述KNN算法与Kd树
Dec 13 Python
matplotlib savefig 保存图片大小的实例
May 24 Python
win10 64bit下python NLTK安装教程
Sep 19 Python
Python中的集合介绍
Jan 28 Python
为什么你还不懂得怎么使用Python协程
May 13 Python
Python进程间通信Queue消息队列用法分析
May 22 Python
Python学习笔记之Django创建第一个数据库模型的方法
Aug 07 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
Feb 25 Python
使用python求解迷宫问题的三种实现方法
Python超详细分步解析随机漫步
yolov5返回坐标的方法实例
Mar 17 #Python
PyTorch中的torch.cat简单介绍
Mar 17 #Python
Python Pygame实战在打砖块游戏的实现
python超详细实现完整学生成绩管理系统
Mar 17 #Python
Python Pygame实战之塔防游戏的实现
You might like
php的GD库imagettftext函数解决中文乱码问题
2015/01/24 PHP
ECMAScript6中Set/WeakSet详解
2015/06/12 Javascript
javascript跑马灯抽奖实例讲解
2020/04/17 Javascript
JavaScript学习笔记之数组的增、删、改、查
2016/03/23 Javascript
js仿QQ中对联系人向左滑动、滑出删除按钮的操作
2016/04/07 Javascript
非常实用的js验证框架实现源码 附原理方法
2016/06/08 Javascript
再谈javascript注入 黑客必备!
2016/09/14 Javascript
vue如何获取点击事件源的方法
2017/08/10 Javascript
js 奇葩技巧之隐藏代码
2017/08/11 Javascript
vue2.0实现的tab标签切换效果(内容可自定义)示例
2019/02/11 Javascript
微信小程序实现多个按钮的颜色状态转换
2019/02/15 Javascript
使用webpack4编译并压缩ES6代码的方法示例
2019/04/24 Javascript
小程序关于请求同步的总结
2019/05/05 Javascript
JavaScript面向对象编程小游戏---贪吃蛇代码实例
2019/05/15 Javascript
使用JQuery自动完成插件Auto Complete详解
2019/06/18 jQuery
vue 移动端注入骨架屏的配置方法
2019/06/25 Javascript
关于Layui Table隐藏列问题
2019/09/16 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
2020/03/02 Javascript
JavaScript 如何在浏览器中使用摄像头
2020/12/02 Javascript
python修改操作系统时间的方法
2015/05/18 Python
python中datetime模块中strftime/strptime函数的使用
2018/07/03 Python
在python中画正态分布图像的实例
2019/07/08 Python
Python 旋转打印各种矩形的方法
2019/07/09 Python
django框架面向对象ORM模型继承用法实例分析
2019/07/29 Python
Python使用__new__()方法为对象分配内存及返回对象的引用示例
2019/09/20 Python
pytorch 彩色图像转灰度图像实例
2020/01/13 Python
通过实例解析python描述符原理作用
2020/01/22 Python
Html5移动端弹幕动画实现示例代码
2018/08/27 HTML / CSS
TUMI澳大利亚网站:美国旅行箱包品牌
2017/03/27 全球购物
工商治理实习生的自我评价分享
2014/02/20 职场文书
大学教师师德师风演讲稿
2014/08/22 职场文书
道士塔读书笔记
2015/06/30 职场文书
大学校园招聘会感想
2015/08/10 职场文书
《平行四边形的面积》教学反思
2016/02/16 职场文书
巾帼建功标兵先进事迹材料
2016/02/29 职场文书
SQL Server中的逻辑函数介绍
2022/05/25 SQL Server