分享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函数参数类型*、**的区别
Apr 11 Python
Python代码调试的几种方法总结
Apr 15 Python
详解Python的Django框架中的templates设置
May 11 Python
python使用reportlab实现图片转换成pdf的方法
May 22 Python
Python类的用法实例浅析
May 27 Python
Python中使用插入排序算法的简单分析与代码示例
May 04 Python
python:socket传输大文件示例
Jan 18 Python
使用Python对微信好友进行数据分析
Jun 27 Python
Django 框架模型操作入门教程
Nov 05 Python
在pycharm中debug 实时查看数据操作(交互式)
Jun 09 Python
Django Form设置文本框为readonly操作
Jul 03 Python
Python语法学习之进程的创建与常用方法详解
Apr 08 Python
使用python求解迷宫问题的三种实现方法
Python超详细分步解析随机漫步
yolov5返回坐标的方法实例
Mar 17 #Python
PyTorch中的torch.cat简单介绍
Mar 17 #Python
Python Pygame实战在打砖块游戏的实现
python超详细实现完整学生成绩管理系统
Mar 17 #Python
Python Pygame实战之塔防游戏的实现
You might like
php5 图片验证码实现代码
2009/12/11 PHP
PHP采集腾讯微博的实现代码
2012/01/19 PHP
php更新mysql后获取影响的行数发生异常解决方法
2013/03/28 PHP
基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正则匹配)
2014/01/31 PHP
万能的php分页类
2017/07/06 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
跨浏览器的 mouseenter mouseleave 以及 compareDocumentPosition的使用说明
2010/05/04 Javascript
什么是Node.js?Node.js详细介绍
2014/06/01 Javascript
node.js中的url.parse方法使用说明
2014/12/10 Javascript
webpack中引用jquery的简单实现
2016/06/08 Javascript
angular bootstrap timepicker TypeError提示怎么办
2017/06/13 Javascript
JavaScript中递归实现的方法及其区别
2017/09/12 Javascript
jQuery实现checkbox的简单操作
2017/11/18 jQuery
新手入门js闭包学习过程解析
2019/10/08 Javascript
[50:50]完美世界DOTA2联赛PWL S3 Galaxy Racer vs Phoenix 第一场 12.10
2020/12/13 DOTA
深入理解 Python 中的多线程 新手必看
2016/11/20 Python
windows环境下tensorflow安装过程详解
2018/03/30 Python
Python之Class&Object用法详解
2019/12/25 Python
Python3.6 中的pyinstaller安装和使用教程
2020/03/16 Python
使用python实现名片管理系统
2020/06/18 Python
Ubuntu权限不足无法创建文件夹解决方案
2020/11/14 Python
python字典按照value排序方法
2020/12/28 Python
python如何实现递归转非递归
2021/02/25 Python
Lacoste澳大利亚官网:服装、鞋类及配饰
2018/11/14 全球购物
什么叫做SQL注入,如何防止
2016/10/04 面试题
幼儿园教师节活动方案
2014/02/02 职场文书
采购经理岗位职责
2014/02/16 职场文书
2014年端午节活动方案
2014/03/11 职场文书
应届硕士毕业生自荐信
2014/05/26 职场文书
文明好少年事迹材料
2014/08/19 职场文书
部门2014年度工作总结
2014/11/12 职场文书
2014年度个人工作总结范文
2015/03/09 职场文书
六一活动主持词
2015/06/30 职场文书
Python数据分析之pandas函数详解
2021/04/21 Python
这样写python注释让代码更加的优雅
2021/06/02 Python
python flappy bird小游戏分步实现流程
2022/02/15 Python