分享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命名空间详解
Aug 18 Python
python查询sqlite数据表的方法
May 08 Python
ubuntu16.04制作vim和python3的开发环境
Sep 23 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
Dec 12 Python
Python进程间通信Queue消息队列用法分析
May 22 Python
Pytorch 实现自定义参数层的例子
Aug 17 Python
numpy 返回函数的上三角矩阵实例
Nov 25 Python
基于spring boot 日志(logback)报错的解决方式
Feb 20 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
Apr 24 Python
Python常见反爬虫机制解决方案
Jun 01 Python
Python3爬虫带上cookie的实例代码
Jul 28 Python
python删除csv文件的行列
Apr 06 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 Memcached应用实现代码
2010/02/08 PHP
php带密码功能并下载远程文件保存本地指定目录 修改加强版
2010/05/16 PHP
php visitFile()遍历指定文件夹函数
2010/08/21 PHP
PHP基于SimpleXML生成和解析xml的方法示例
2017/07/17 PHP
laravel通过创建自定义artisan make命令来新建类文件详解
2017/08/17 PHP
PHP扩展类型及安装方式解析
2020/04/27 PHP
JS取得绝对路径的实现代码
2015/01/16 Javascript
js实现类似新浪微博首页内容渐显效果的方法
2015/04/10 Javascript
JavaScript制作淘宝星级评分效果的思路
2020/06/23 Javascript
Bootstrap表单控件使用方法详解
2017/01/11 Javascript
微信小程序与php 实现微信支付的简单实例
2017/06/23 Javascript
JS自定义滚动条效果简单实现代码
2020/10/27 Javascript
响应式框架Bootstrap栅格系统的实例
2017/12/19 Javascript
在Angular中使用JWT认证方法示例
2018/09/10 Javascript
微信小程序实现保存图片到相册功能
2018/11/30 Javascript
Vue.Draggable拖拽功能的配置使用方法
2020/07/29 Javascript
Python CSV模块使用实例
2015/04/09 Python
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
2017/03/11 Python
利用python批量给云主机配置安全组的方法教程
2017/06/21 Python
Python基础学习之常见的内建函数整理
2017/09/06 Python
python之virtualenv的简单使用方法(必看篇)
2017/11/25 Python
基于Python socket的端口扫描程序实例代码
2018/02/09 Python
python MySQLdb使用教程详解
2018/03/20 Python
实例详解Python装饰器与闭包
2019/07/29 Python
通过python 执行 nohup 不生效的解决
2020/04/16 Python
python中time tzset()函数实例用法
2021/02/18 Python
使用jTopo给Html5 Canva中绘制的元素添加鼠标事件
2014/05/15 HTML / CSS
大学本科毕业生求职信范文
2013/12/18 职场文书
给导游的表扬信
2014/01/10 职场文书
日语专业个人求职信范文
2014/02/02 职场文书
法制宣传日活动总结
2014/04/29 职场文书
学校节能减排倡议书
2014/05/16 职场文书
2014年物业公司工作总结
2014/11/22 职场文书
小学班主任工作总结2015
2015/04/07 职场文书
小学数学继续教育研修日志
2015/11/13 职场文书
2019开业庆典剪彩仪式主持词!
2019/07/22 职场文书