分享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实现web方式logview的方法
Aug 10 Python
今天 平安夜 Python 送你一顶圣诞帽 @微信官方
Dec 25 Python
Python读写zip压缩文件的方法
Aug 29 Python
Python的UTC时间转换讲解
Feb 26 Python
学习和使用python的13个理由
Jul 30 Python
详解Python打包分发工具setuptools
Aug 05 Python
浅谈keras的深度模型训练过程及结果记录方式
Jan 24 Python
Python3内置函数chr和ord实现进制转换
Jun 05 Python
Python3爬虫里关于Splash负载均衡配置详解
Jul 10 Python
python调用摄像头的示例代码
Sep 28 Python
详解selenium + chromedriver 被反爬的解决方法
Oct 28 Python
Python趣味爬虫之用Python实现智慧校园一键评教
May 28 Python
使用python求解迷宫问题的三种实现方法
Python超详细分步解析随机漫步
yolov5返回坐标的方法实例
Mar 17 #Python
PyTorch中的torch.cat简单介绍
Mar 17 #Python
Python Pygame实战在打砖块游戏的实现
python超详细实现完整学生成绩管理系统
Mar 17 #Python
Python Pygame实战之塔防游戏的实现
You might like
Zend的Registry机制的使用说明
2013/05/02 PHP
PHP实现权限管理功能示例
2017/09/22 PHP
Javascript中arguments用法实例分析
2015/06/13 Javascript
jQuery实现无限往下滚动效果代码
2016/04/16 Javascript
checkbox 选中一个另一个checkbox也会选中的实现代码
2016/07/09 Javascript
微信小程序 富文本转文本实例详解
2016/10/24 Javascript
在Vue中使用highCharts绘制3d饼图的方法
2018/02/08 Javascript
解决vue2中使用axios http请求出现的问题
2018/03/05 Javascript
详解小程序开发经验:多页面数据同步
2019/05/18 Javascript
vue draggable resizable gorkys与v-chart使用与总结
2019/09/05 Javascript
在Layui中实现开关按钮的效果实例
2019/09/29 Javascript
JS实现骰子3D旋转效果
2019/10/24 Javascript
浅析vue中的provide / inject 有什么用处
2019/11/10 Javascript
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
2016/06/18 Python
python使用mysql的两种使用方式
2018/03/07 Python
python计算日期之间的放假日期
2018/06/05 Python
python实现简单tftp(基于udp协议)
2018/07/30 Python
python实现淘宝秒杀脚本
2020/06/23 Python
元组列表字典(莫烦python基础)
2019/04/03 Python
python从内存地址上加载python对象过程详解
2020/01/08 Python
Python list运算操作代码实例解析
2020/01/20 Python
Python打印特殊符号及对应编码解析
2020/05/07 Python
几款Python编译器比较与推荐(小结)
2020/10/15 Python
python自动化发送邮件实例讲解
2021/01/04 Python
CSS3实现淘宝留白的方法
2020/06/05 HTML / CSS
英国领先的品牌珠宝和配件供应商:Acotis Jewellery
2018/03/07 全球购物
C++如何引用一个已经定义过的全局变量
2014/08/25 面试题
教师实习期自我鉴定
2013/10/06 职场文书
在求职信中如何凸显个人优势
2013/10/30 职场文书
《黄山奇石》教学反思
2014/04/19 职场文书
中等生评语大全
2014/05/04 职场文书
儿童生日会策划方案
2014/05/15 职场文书
小学家长学校培训材料
2014/08/24 职场文书
教师节活动总结
2014/08/29 职场文书
2015年大学元旦晚会活动策划书
2014/12/09 职场文书
pytorch中的model.eval()和BN层的使用
2021/05/22 Python