python --获取内网IP地址

news/2024/11/30 10:50:50/

方法一

import socketdef get_local_ip_address():ip_address = ''try:# 获取本机主机名hostname = socket.gethostname()# 获取本机IPip_address = socket.gethostbyname(hostname)except:passreturn ip_address

方法二

import subprocessdef get_local_ip_address():ip_address = ''try:# 获取IP地址ip_address = subprocess.check_output(['hostname', '-I']).decode('utf-8').strip()except:passreturn ip_address

该方法利用了Unix系统上的hostname命令来获取IP地址,并返回字符串格式的IP地址。如果你使用的是Windows系统,则需要使用ipconfig命令。你可以在subprocess.check_output中传递正确的命令,以便在Windows上获取IP地址。

import socketdef get_local_ip_address():ip_address = ''try:# 获取IP地址ip_address = socket.getaddrinfo(socket.gethostname(), None, family=socket.AF_INET, proto=socket.IPPROTO_TCP)[0][4][0]except:passreturn ip_address

该方法利用getaddrinfo函数获取计算机的IP地址,并返回字符串格式的IP地址。

方法三(三方模块)

import netifacesdef get_local_ip_address():ip_address = ''try:# 获取网络接口列表interfaces = netifaces.interfaces()# 查找第一个非本地回环接口的IP地址for interface in interfaces:if interface == 'lo':continueaddresses = netifaces.ifaddresses(interface)ip_addresses = addresses.get(netifaces.AF_INET)if ip_addresses:ip_address = ip_addresses[0]['addr']breakexcept:passreturn ip_address

该方法使用netifaces模块来获取计算机的网络接口列表,并查找第一个非本地回环接口的IP地址。然后,它返回一个字符串格式的IP地址。

方法四(Linux)

如果你是在Linux系统上运行Python程序,可以使用ifconfig命令来获取内网IP地址。以下是一个可以在Linux系统上使用的Python函数:

import subprocessdef get_local_ip_address():ip_address = ''try:# 获取IP地址output = subprocess.check_output(['ifconfig']).decode('utf-8')lines = output.split('\n')for line in lines:if 'inet ' in line and not line.startswith('127.0.0.1'):ip_address = line.split()[1]breakexcept:passreturn ip_address

该方法使用subprocess模块来运行Linux ifconfig命令,并从命令输出中提取IP地址。它返回一个字符串格式的IP地址。

请注意,该方法仅适用于Linux系统。如果你使用的是其他操作系统,请使用前面提到的方法之一来获取计算机的内部IP地址。

方法五(windows)

import osdef get_local_ip_address():ip_address = ''try:# 获取IP地址ipconfig_process = os.popen('ipconfig')ipconfig_output = ipconfig_process.read()ipconfig_process.close()for line in ipconfig_output.split('\n'):if 'IPv4' in line:ip_address = line.split(': ')[-1]breakexcept:passreturn ip_address

http://www.ppmy.cn/news/34569.html

相关文章

【密码学复习】第二讲 古典密码学

加密术语• 明文(plaintext/message):是加密之前的字符、符号;• 密文(ciphertext):是加密之后的字符、符号;• 密钥(key) :是在明文转换为密文或将密文转换为明文的算法中输入的参数;• 加密(encryption) …

学习 Python 之 Pygame 开发魂斗罗(十)

学习 Python 之 Pygame 开发魂斗罗(十)继续编写魂斗罗1. 解决敌人不开火的问题2. 创建爆炸效果类3. 为敌人跳入河中增加爆炸效果4. 玩家击中敌人继续编写魂斗罗 在上次的博客学习 Python 之 Pygame 开发魂斗罗(九)中,…

Halcon转OpenCV实例--纺织物折痕检测(附源码)

导 读 本文主要介绍Halcon转OpenCV实例--纺织物折痕检测(附源码)。 实例来源 实例来源于《Halcon机器视觉算法原理与编程实战》7.4.2实例 下面测试图片也来源于图书代码,如有侵权请联系删除: 上图肉眼可见的折痕,类似脏污,我们的目的是将折痕检测出来。 Halcon实现 …

二分查找——我欲修仙(功法篇)

个人主页:【😊个人主页】 系列专栏:【❤️我欲修仙】 学习名言:临渊羡鱼,不如退而结网——《汉书董仲舒传》 系列文章目录 第一章 ❤️ 二分查找 文章目录系列文章目录前言🚗🚗🚗二分查找&…

yolov5 改进技巧详解

本文以yolov5-7.0的代码进行讲解yolov5的改进技巧。 1. 使用yolov5-p6以及yolov5-p7模型 yolov5 官方实现的代码,提供了多种架构的模型配置文件,包括:yolov3-spp,yolov5-bifpn, yolov5-p6, yolov5-p7, yolov5-panet, yolov5-transformer 如果想训练不同架构的模型,只需要…

vue面试题(day06)

文章目录前言请谈谈WXML与标准的html的异同?请谈谈WXSS和CSS的异同?请谈谈微信小程序主要目录和文件的作用?请谈谈小程序的双向绑定和vue的异同?简单描述下微信小程序的相关文件类型?微信小程序有哪些传值(传递数据)方…

工程管理系统源码之提高工程项目管理软件的效率

高效的工程项目管理软件不仅能够提高效率还应可以帮你节省成本提升利润 在工程行业中,管理不畅以及不良的项目执行,往往会导致项目延期、成本上升、回款拖后,最终导致项目整体盈利下降。企企管理云业财一体化的项目管理系统,确保…

[学习笔记] 2. C++ / CPP核心编程

本阶段主要针对C面向对象编程技术做详细讲解,探讨C中的核心和精髓。 面向对象是一种编程思想。 目录1. 内存分区模型1.1 程序运行前1.2 程序运行后1.2.1 栈区1.2.2 堆区1.3 new操作符2. 引用2.1引用的基本使用2.2 引用注意事项2.3 引用做函数参数2.4 引用做函数返回…