分享Python获取本机IP地址的几种方法
作者:小锋学长生活大爆炸 时间:2022-02-17 12:47:18
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
2、使用自带socket库
获取的是局域网IP。
import socket
# 函数 gethostname() 返回当前正在执行 Python 的系统主机名
res = socket.gethostbyname(socket.gethostname())
print(res)
但是上面这个获取的不是公网IP,结果也不稳定(这里获取了虚拟机下的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:
可以ipconfig看一下:
另一个适用于所有接口。它还适用于所有公共、私有、外部 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))
来源:https://blog.csdn.net/sxf1061700625/article/details/123526907
标签:Python,获取,本机,IP地址,方法
0
投稿
猜你喜欢
Python3最长回文子串算法示例
2023-05-27 14:17:10
python自定义函数实现最大值的输出方法
2022-02-07 19:15:28
SQLSERVER 2005中使用sql语句对xml文件和其数据的进行操作(很全面)
2024-01-14 19:31:21
在Python的web框架中中编写日志列表的教程
2021-11-06 05:15:29
python图像处理基本操作总结(PIL库、Matplotlib及Numpy)
2022-01-26 00:28:50
ADO.NET 连接数据库字符串小结(Oracle、SqlServer、Access、ODBC)
2024-01-22 07:43:47
Python的语法基础你真的了解吗
2021-02-23 22:15:11
让javascript加载速度倍增的方法(解决JS加载速度慢的问题)
2024-04-19 11:03:22
关于Mysql-connector-java驱动版本问题总结
2024-01-19 02:07:58
C#实例代码之抽奖升级版可以经表格数据导入数据库,抽奖设置,补抽
2024-01-26 14:21:41
详解Python中的join()函数的用法
2021-01-20 11:21:23
mysql支持跨表delete删除多表记录
2024-01-27 06:12:29
selenium设置浏览器为headless无头模式(Chrome和Firefox)
2023-02-19 14:09:08
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
2024-04-22 12:59:41
python判断文件夹内是否存在指定后缀文件的实例
2021-12-27 23:05:19
vue实现商城秒杀倒计时功能
2024-05-29 22:24:16
Python unittest模块用法实例分析
2023-03-28 17:36:06
SQL Server中的SQL语句优化与效率问题
2024-01-20 05:26:57
asp.net DropDownList实现二级联动效果
2023-07-23 07:48:41
解决python3 pika之连接断开的问题
2021-09-28 18:40:09