Python获取网络适配器接口的类型、状态IPv4和IPv6地址

2023-10-24 19:29

本文主要是介绍Python获取网络适配器接口的类型、状态IPv4和IPv6地址,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考CSDN博主「Kwoky」的https://blog.csdn.net/Kwoky/article/details/84858997的简介:
psutil是一个跨平台库(http://pythonhosted.org/psutil/)能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。它主要用来做系统监控,性能分析,进程管理。它实现了同等命令行工具提供的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap等。目前支持32位和64位的Linux、Windows、OS X、FreeBSD和Sun Solaris等操作系统.

import socket
import psutildef classify_ip_by_network_type():ip_info = {}# 获取所有网络接口信息network_interfaces = psutil.net_if_addrs()for interface, addresses in network_interfaces.items():for address in addresses:# 检查是否为IPv4地址if address.family == socket.AF_INET:#检查是否为IPv6地址#if address.family == psutil.AF_LINK:# print(address.family)ip = address.addressnetwork_type = psutil.net_if_stats()[interface].isupif network_type:network_type = "Up"  # 网络接口处于活动状态else:network_type = "Down"  # 网络接口处于非活动状态if network_type not in ip_info:ip_info[network_type] = []ip_info[network_type].append((interface, ip))return ip_info# 获取IP地址和对应的网络接口类型
ip_info = classify_ip_by_network_type()for network_type, ip_list in ip_info.items():print(f"网络接口类型: {network_type}")for interface, ip in ip_list:print(f"网络接口: {interface}, IP地址: {ip}")

运行结果

网络接口类型: Up
网络接口: 以太网, IP地址: 10.12.135.74
网络接口: VMware Network Adapter VMnet1, IP地址: 192.168.189.1
网络接口: VMware Network Adapter VMnet8, IP地址: 192.168.199.1
网络接口: vEthernet (Default Switch), IP地址: 172.26.160.1
网络接口: Loopback Pseudo-Interface 1, IP地址: 127.0.0.1
网络接口类型: Down
网络接口: WLAN, IP地址: 169.254.72.113
网络接口: 本地连接* 9, IP地址: 169.254.208.9
网络接口: 本地连接* 10, IP地址: 169.254.118.33

这篇关于Python获取网络适配器接口的类型、状态IPv4和IPv6地址的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/277260

相关文章

使用Python提取PDF大纲(书签)的完整指南

《使用Python提取PDF大纲(书签)的完整指南》PDF大纲(Outline)​​是PDF文档中的导航结构,通常显示在阅读器的侧边栏中,方便用户快速跳转到文档的不同部分,大纲通常以层级结构组织,包含... 目录一、PDF大纲简介二、准备工作所需工具常见安装问题三、代码实现完整代码核心功能解析四、使用效果控

Python自定义异常的全面指南(入门到实践)

《Python自定义异常的全面指南(入门到实践)》想象你正在开发一个银行系统,用户转账时余额不足,如果直接抛出ValueError,调用方很难区分是金额格式错误还是余额不足,这正是Python自定义异... 目录引言:为什么需要自定义异常一、异常基础:先搞懂python的异常体系1.1 异常是什么?1.2

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

Linux升级或者切换python版本实现方式

《Linux升级或者切换python版本实现方式》本文介绍在Ubuntu/Debian系统升级Python至3.11或更高版本的方法,通过查看版本列表并选择新版本进行全局修改,需注意自动与手动模式的选... 目录升级系统python版本 (适用于全局修改)对于Ubuntu/Debian系统安装后,验证Pyt

C#之枚举类型与随机数详解

《C#之枚举类型与随机数详解》文章讲解了枚举类型的定义与使用方法,包括在main外部声明枚举,用于表示游戏状态和周几状态,枚举值默认从0开始递增,也可手动设置初始值以生成随机数... 目录枚举类型1.定义枚举类型(main外)2.使用生成随机数总结枚举类型1.定义枚举类型(main外)enum 类型名字

Python实现开根号的五种方式

《Python实现开根号的五种方式》在日常数据处理、数学计算甚至算法题中,开根号是一个高频操作,但你知道吗?Python中实现开根号的方式远不止一种!本文总结了5种常用方法,感兴趣的小伙伴跟着小编一起... 目录一、为什么需要多种开根号方式?二、5种开根号方式详解方法1:数学库 math.sqrt() ——

Python lambda函数(匿名函数)、参数类型与递归全解析

《Pythonlambda函数(匿名函数)、参数类型与递归全解析》本文详解Python中lambda匿名函数、灵活参数类型和递归函数三大进阶特性,分别介绍其定义、应用场景及注意事项,助力编写简洁高效... 目录一、lambda 匿名函数:简洁的单行函数1. lambda 的定义与基本用法2. lambda

Python 函数详解:从基础语法到高级使用技巧

《Python函数详解:从基础语法到高级使用技巧》本文基于实例代码,全面讲解Python函数的定义、参数传递、变量作用域及类型标注等知识点,帮助初学者快速掌握函数的使用技巧,感兴趣的朋友跟随小编一起... 目录一、函数的基本概念与作用二、函数的定义与调用1. 无参函数2. 带参函数3. 带返回值的函数4.

基于Redisson实现分布式系统下的接口限流

《基于Redisson实现分布式系统下的接口限流》在高并发场景下,接口限流是保障系统稳定性的重要手段,本文将介绍利用Redisson结合Redis实现分布式环境下的接口限流,具有一定的参考价值,感兴趣... 目录分布式限流的核心挑战基于 Redisson 的分布式限流设计思路实现步骤引入依赖定义限流注解实现

Python跨文件实例化、跨文件调用及导入库示例代码

《Python跨文件实例化、跨文件调用及导入库示例代码》在Python开发过程中,经常会遇到需要在一个工程中调用另一个工程的Python文件的情况,:本文主要介绍Python跨文件实例化、跨文件调... 目录1. 核心对比表格(完整汇总)1.1 自定义模块跨文件调用汇总表1.2 第三方库使用汇总表1.3 导