分享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实现SMTP邮件发送功能
Jun 16 Python
简单掌握Python中glob模块查找文件路径的用法
Jul 05 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
Aug 30 Python
对Python中的@classmethod用法详解
Apr 21 Python
twilio python自动拨打电话,播放自定义mp3音频的方法
Aug 08 Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
Feb 03 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
Feb 03 Python
基于Python数据分析之pandas统计分析
Mar 03 Python
Python 实现一行输入多个数字(用空格隔开)
Apr 29 Python
Python实现手绘图效果实例分享
Jul 22 Python
在Python中字典按值排序的实现方法
Nov 12 Python
如何用python爬取微博热搜数据并保存
Feb 20 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添加文章时生成静态HTML文章的实现代码
2013/02/17 PHP
ThinkPHP调试模式与日志记录概述
2014/08/22 PHP
php中的ini配置原理详解
2014/10/14 PHP
smarty内置函数section的用法
2015/01/22 PHP
javascript日期计算实例分析
2015/06/29 Javascript
JS遍历数组及打印数组实例分析
2016/01/21 Javascript
Windows系统下安装Node.js的步骤图文详解
2016/11/15 Javascript
Jquery根据浏览器窗口改变调整大小的方法
2017/02/07 Javascript
解决浏览器会自动填充密码的问题
2017/04/28 Javascript
vue.js或js实现中文A-Z排序的方法
2018/03/08 Javascript
详解vue表单——小白速看
2018/04/08 Javascript
Vue cli3 库模式搭建组件库并发布到 npm的流程
2018/10/12 Javascript
微信小程序实现发送验证码按钮效果
2018/12/20 Javascript
Vue实现商品飞入购物车效果(电商项目)
2019/11/26 Javascript
webpack DllPlugin xxx is not defined解决办法
2019/12/13 Javascript
JavaScript实现商品评价五星好评
2020/11/30 Javascript
[01:00:14]DOTA2官方TI8总决赛纪录片 真视界True Sight
2019/01/16 DOTA
Python-基础-入门 简介
2014/08/09 Python
python实现调用其他python脚本的方法
2014/10/05 Python
Django中的Signal代码详解
2018/02/05 Python
查看python下OpenCV版本的方法
2018/08/03 Python
详解python3 + Scrapy爬虫学习之创建项目
2019/04/12 Python
django项目简单调取百度翻译接口的方法
2019/08/06 Python
Python类如何定义私有变量
2020/02/03 Python
Probikekit日本:自行车套件,跑步和铁人三项装备
2017/04/03 全球购物
巴西一家专门从事家居和装饰的连锁店:Camicado
2019/08/14 全球购物
公司行政经理岗位职责
2013/12/24 职场文书
毕业评语大全
2014/05/04 职场文书
全国爱牙日活动总结
2015/02/05 职场文书
三方合作意向书范本
2015/05/09 职场文书
小学运动会通讯稿
2015/07/18 职场文书
思品教学工作总结
2015/08/10 职场文书
导游词之西湖雷峰塔
2019/09/18 职场文书
python 提取html文本的方法
2021/05/20 Python
实体类或对象序列化时,忽略为空属性的操作
2021/06/30 Java/Android
HTTP中的Content-type详解
2022/01/18 HTML / CSS