python获取IPv4

IPv4(Internet Protocol version 4)是互联网协议的第四个版本,它是互联网上使用最广泛的协议之一。在网络通信中,每个设备都需要一个唯一的IPv4地址来区分和标识。在本文中,我们将介绍如何使用Python编程语言来获取IPv4地址。

什么是IPv4地址?

IPv4地址是一个32位的二进制数字,通常以点分十进制的形式表示,例如192.168.0.1。其中,每个数字的取值范围是0到255。IPv4地址由网络部分和主机部分组成,网络部分用于区分不同的网络,而主机部分用于标识网络中的不同设备。

获取本地IPv4地址

在Python中,我们可以使用socket模块来获取本地的IPv4地址。socket模块提供了一组函数和类,用于进行网络编程。

下面是一个示例代码,演示了如何获取本地的IPv4地址:

import socket

def get_local_ipv4():
    # 创建一个socket对象
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    try:
        # 连接到一个公共的IP地址
        s.connect(("8.8.8.8", 80))
        # 获取本地的IPv4地址
        local_ipv4 = s.getsockname()[0]
        return local_ipv4
    finally:
        s.close()

# 调用函数获取本地IPv4地址
local_ipv4 = get_local_ipv4()
print("本地IPv4地址:", local_ipv4)

上述代码中,我们使用socket.socket函数创建了一个IPv4的socket对象。然后,使用socket.connect方法连接到一个公共的IP地址(这里使用了Google的DNS服务器地址8.8.8.8)。最后,使用socket.getsockname方法获取本地的IPv4地址。

获取公网IPv4地址

要获取公网IPv4地址,可以通过访问一个提供了返回客户端IP地址的Web服务。常用的一个接口是[ipify.org](

下面是一个示例代码,演示了如何获取公网的IPv4地址:

import requests

def get_public_ipv4():
    # 发送HTTP GET请求到ipify.org获取公网IPv4地址
    response = requests.get("
    data = response.json()
    public_ipv4 = data["ip"]
    return public_ipv4

# 调用函数获取公网IPv4地址
public_ipv4 = get_public_ipv4()
print("公网IPv4地址:", public_ipv4)

上述代码中,我们使用requests.get函数发送一个HTTP GET请求到[ipify.org](

IPv4地址的应用

IPv4地址在网络编程中有着广泛的应用。除了获取本地和公网IPv4地址外,我们还可以使用IPv4地址进行网络通信、IP地址过滤和访问控制等操作。

在网络通信中,IPv4地址用于标识和寻址网络上的不同设备。例如,在创建一个TCP连接时,需要指定源IP地址和目标IP地址来进行通信。

在IP地址过滤和访问控制方面,IPv4地址可以用于限制对特定资源的访问。例如,通过配置防火墙规则,我们可以根据源IP地址来允许或拒绝对某个服务或端口的访问。

总结

本文介绍了如何使用Python获取IPv4地址。我们通过socket模块获取了本地IPv4地址,并通过访问[ipify.org](