python获取本机ip地址
Python获取本机IP地址的方法有多种,可以通过socket库、netifaces库或者使用命令行工具来实现。下面将分别介绍这些方法。
1. 使用socket库
`python
import socket
def get_local_ip():
try:
# 创建一个UDP套接字
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 连接到一个外部的IP地址和端口,不会真正发送数据
sock.connect(("8.8.8.8", 80))
# 获取本地IP地址
ip = sock.getsockname()[0]
return ip
finally:
sock.close()
# 调用函数获取本机IP地址
local_ip = get_local_ip()
print("本机IP地址为:", local_ip)
2. 使用netifaces库
`python
import netifaces
def get_local_ip():
# 获取所有网络接口
interfaces = netifaces.interfaces()
for interface in interfaces:
# 获取接口的地址信息
addresses = netifaces.ifaddresses(interface)
if netifaces.AF_INET in addresses:
# 获取IPv4地址
ip = addresses[netifaces.AF_INET][0]['addr']
if not ip.startswith("127.0."):
return ip
# 调用函数获取本机IP地址
local_ip = get_local_ip()
print("本机IP地址为:", local_ip)
3. 使用命令行工具
在Python中,可以使用subprocess模块来执行命令行命令,并获取其输出结果。可以使用以下命令来获取本机IP地址:
`python
import subprocess
def get_local_ip():
# 执行命令 ifconfig,并获取输出结果
result = subprocess.run(['ifconfig'], capture_output=True, text=True)
output = result.stdout
# 在输出结果中查找IP地址
ip_start = output.find("inet ") + 5
ip_end = output.find(" ", ip_start)
ip = output[ip_start:ip_end]
return ip
# 调用函数获取本机IP地址
local_ip = get_local_ip()
print("本机IP地址为:", local_ip)
以上是三种常用的方法来获取本机IP地址的Python代码。根据实际情况选择适合的方法即可。
千锋教育IT培训课程涵盖web前端培训、Java培训、Python培训、大数据培训、软件测试培训、物联网培训、云计算培训、网络安全培训、Unity培训、区块链培训、UI培训、影视剪辑培训、全媒体运营培训等业务;此外还推出了软考、、PMP认证、华为认证、红帽RHCE认证、工信部认证等职业能力认证课程;同期成立的千锋教研院,凭借有教无类的职业教育理念,不断提升千锋职业教育培训的质量和效率。
相关推荐HOT
更多>>python输出文件路径并保存
Python输出文件路径并保存Python是一种强大的编程语言,它提供了许多方法来处理文件和目录。如果你想要输出文件路径并保存,可以使用Python的内...详情>>
2023-08-22 16:08:21python列表添加元素的函数
当我们使用Python编程时,经常会遇到需要向列表中添加元素的情况。Python提供了一些内置的方法来实现这一功能。其中,最常用的方法是使用append...详情>>
2023-08-21 12:48:04python列表添加元素的三种方法
Python列表添加元素的三种方法及使用技巧介绍:Python中的列表是一种常用的数据结构,用于存储多个元素。在实际开发中,经常需要向列表中添加元...详情>>
2023-08-21 12:47:51python列表添加元素成为新的列表
当我们使用Python编程时,经常需要对列表进行操作,其中一个常见的操作就是添加元素成为新的列表。Python提供了多种方法来实现这个操作。我们可...详情>>
2023-08-21 12:47:38