📜  获取ip python(1)

📅  最后修改于: 2023-12-03 14:57:13.220000             🧑  作者: Mango

Python中获取IP

在Python中,我们可以使用几种方法获取本机IP地址,下面将逐一介绍这些方法。

使用socket模块

我们可以使用Python自带的 socket 模块来获取本机IP地址。使用该方法时,需要导入 socket 模块,然后调用 socket.gethostbyname(socket.gethostname()) 方法即可获取本机IP地址。

import socket

ip_address = socket.gethostbyname(socket.gethostname())
print("本机IP地址为:", ip_address)

该方法的缺点是在某些情况下会返回不正确的IP地址,比如当机器名没有正确设置时可能会出错。

使用netifaces模块

在Python中,我们也可以使用第三方模块 netifaces 来获取本机IP地址。使用该方法时,需要先安装该模块,可以使用 pip install netifaces 命令来安装。

import netifaces as ni

ni.ifaddresses('eth0')
ip_address = ni.ifaddresses('eth0')[ni.AF_INET][0]['addr']
print("本机IP地址为:", ip_address)

注意:上述代码中的 eth0 指的是本机网卡的名称,可以根据实际情况修改。

使用requests模块

除了以上两种方法外,我们还可以使用第三方模块requests以及调用外部API的方式获取本机IP地址。使用该方法时,需要先安装 requests 模块,可以使用 pip install requests 命令来安装。

import requests

ip_address = requests.get('https://api.ipify.org').text
print("本机IP地址为:", ip_address)

这种方法的优点是可以获得真实的IP地址,但缺点是需要联网。

以上三种方法都可以有效获取本机IP地址。