分享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 相关文章推荐
pyv8学习python和javascript变量进行交互
Dec 04 Python
简单学习Python多进程Multiprocessing
Aug 29 Python
理解Python中的绝对路径和相对路径
Aug 30 Python
windows下python之mysqldb模块安装方法
Sep 07 Python
Python基于pygame模块播放MP3的方法示例
Sep 30 Python
Python抓取框架Scrapy爬虫入门:页面提取
Dec 01 Python
python 列表输出重复值以及对应的角标方法
Jun 11 Python
Python批量查询关键词微信指数实例方法
Jun 27 Python
Python matplotlib绘制饼状图功能示例
Sep 10 Python
Django 实现将图片转为Base64,然后使用json传输
Mar 27 Python
离线状态下在jupyter notebook中使用plotly实例
Apr 24 Python
python3爬虫中多线程进行解锁操作实例
Nov 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中ob_start()函数的用法
2013/06/24 PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
2018/10/30 PHP
Thinkphp5 如何隐藏入口文件index.php(URL重写)
2019/10/16 PHP
php实现JWT验证的实例教程
2020/11/26 PHP
JavaScript 组件之旅(三):用 Ant 构建组件
2009/10/28 Javascript
基于JQuery的数字改变的动画效果--可用来做计数器
2010/08/11 Javascript
Web 前端设计模式--Dom重构 提高显示性能
2010/10/22 Javascript
javascript学习笔记(六) Date 日期类型
2012/06/19 Javascript
jquery绑定事件不生效的解决方法
2014/02/11 Javascript
JavaScript实现将xml转换成html table表格的方法
2015/04/17 Javascript
JS组件Bootstrap按钮组与下拉按钮详解
2016/05/10 Javascript
聊聊那些使用前端Javascript实现的机器学习类库
2017/09/18 Javascript
[36:43]NB vs Optic 2018国际邀请赛小组赛BO1 B组加赛 8.19
2018/08/21 DOTA
python通过floor函数舍弃小数位的方法
2015/03/17 Python
python使用urllib2实现发送带cookie的请求
2015/04/28 Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
2018/01/04 Python
Python实现购物车程序
2018/04/16 Python
python3实现带多张图片、附件的邮件发送
2019/08/10 Python
如何用Lucene索引数据库
2016/02/23 面试题
教学实验楼管理制度
2014/02/01 职场文书
扩大国家免疫规划实施方案
2014/03/21 职场文书
应届大专毕业生自我鉴定
2014/04/08 职场文书
和解协议书
2014/04/16 职场文书
中专生自荐信
2014/06/25 职场文书
党的群众路线教育实践活动批评与自我批评范文
2014/10/16 职场文书
婚礼答谢礼品
2015/01/20 职场文书
2015年信访工作总结
2015/04/07 职场文书
简爱电影观后感
2015/06/10 职场文书
听课评课活动心得体会
2016/01/15 职场文书
使用Redis实现实时排行榜功能
2021/07/02 Redis
HTML常用标签超详细整理
2022/03/19 HTML / CSS
nginx常用配置conf的示例代码详解
2022/03/21 Servers
以下牛机,你有几个
2022/04/05 无线电
python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点)
2022/04/06 Python
Golang入门之计时器
2022/05/04 Golang
python实现双链表
2022/05/25 Python