python验证公网ip与内网ip

简介: python验证公网ip与内网ip

什么是公网IP

公网IP(Public IP)是指在互联网中全球唯一标识一个设备或网络的IP地址。它是供公众访问和通信的IP地址。

公网IP是由互联网服务提供商(ISP)分配给用户或组织的,它允许设备通过互联网与其他设备进行通信和交互。每个设备连接到互联网时,都需要分配一个公网IP地址,以便其他设备可以通过该地址找到并与其通信。

 

公网IP地址是由32位的IP协议版本(IPv4)或128位的IP协议版本(IPv6)表示的数字地址。IPv4地址通常以点分十进制的形式表示,例如192.168.0.1,而IPv6地址通常以冒号分隔的16进制数表示。

公网IP地址的分配方式通常由ISP进行管理和控制。一般来说,家庭网络或小型企业网络使用动态分配的公网IP地址,它们可以在每次重新连接互联网时分配一个新的IP地址。而大型企业或服务器通常使用静态分配的公网IP地址,它们的IP地址在一段时间内保持不变。

需要注意的是,由于IPv4地址资源有限,随着互联网的发展,IPv6协议逐渐普及,整个互联网逐渐迁移至IPv6地址空间,以满足不断增长的互联网连接需求。

什么是内网IP

内网IP(Private IP)是在私有网络中使用的IP地址,用于内部组织、家庭或企业内部设备之间的通信。相对于公网IP,内网IP是在局域网或本地网络中使用的,不直接可被公网访问。

内网IP地址通常由组织、家庭或企业内部的网络管理员进行分配和管理,以实现内部网络设备的互连和通信。它们可以用于连接计算机、服务器、路由器、打印机和其他设备,以构建内部网络和局域网。

 

根据不同的网络协议版本,内网IP地址可以是IPv4或IPv6。典型的IPv4内网IP地址范围如下:

- 私有类A网段:10.0.0.0 至 10.255.255.255

- 私有类B网段:172.16.0.0 至 172.31.255.255

- 私有类C网段:192.168.0.0 至 192.168.255.255

这些内网IP地址段在互联网中是保留的,并且在全球范围内具有唯一性。这意味着,内网IP地址可以在不同的私有网络中重复使用,而不会与其他网络的IP地址冲突。

内网IP地址的一个特点是,它们无法直接通过公网进行访问。如果内网设备需要与公网通信,通常需要使用网络地址转换(NAT)等方式将内网IP地址转换为公网IP地址。

通过使用内网IP地址,内部设备可以在局域网中自由进行通信和共享资源,但不会直接暴露在公网中,从而提供了一定的网络安全性。

python怎么验证公网IP和内网IP

在Python中,你可以使用socket库来验证公网IP和内网IP。下面是一个简单的示例代码:

import socket
 
def is_public_ip(ip):
    try:
        # 创建一个套接字并连接到指定IP的端口,使用超时时间来避免长时间等待
        sock = socket.create_connection((ip, 80), timeout=3)
        # 关闭套接字连接
        sock.close()
        # 如果连接成功,则判断为公网IP
        return True
    except socket.error:
        # 如果连接失败,则判断为内网IP
        return False
 
# 示例验证
ip_addresses = ['192.168.1.1', '8.8.8.8']
 
for ip in ip_addresses:
    if is_public_ip(ip):
        print(f'{ip} 是公网IP')
    else:
        print(f'{ip} 是内网IP')

在上述代码中,`is_public_ip`函数尝试与指定IP地址的80端口进行连接。如果连接成功,则判断为公网IP;如果连接失败,则判断为内网IP。

请注意,这种验证方法有一定的局限性。因为它使用的是与IP地址的80端口进行连接,如果目标设备没有开放该端口或有防火墙限制,验证结果可能不准确。另外,由于公网IP地址可能会动态改变,仅通过验证一次并不能确定其是否一直为公网IP。

因此,在实际使用中,可能需要结合其他方法和服务(如合法的IP数据库)来更准确地验证和区分公网IP和内网IP。

相关文章
|
1月前
|
数据采集 安全 数据安全/隐私保护
python怎么获取免费代理IP
python怎么获取免费代理IP
50 0
|
2月前
|
网络协议 网络性能优化 Python
在Python中进行TCP/IP网络编程
在Python中进行TCP/IP网络编程
34 6
|
7天前
|
数据挖掘 API 数据安全/隐私保护
python请求模块requests如何添加代理ip
python请求模块requests如何添加代理ip
|
8天前
|
存储 关系型数据库 MySQL
Python搭建代理IP池实现存储IP的方法
Python搭建代理IP池实现存储IP的方法
|
8天前
|
Python
Python动态IP代理防止被封的方法
Python动态IP代理防止被封的方法
|
8天前
|
存储 API Python
python之代理ip的配置与调试
python之代理ip的配置与调试
|
8天前
|
存储 Python
用Python实现批量下载文件——代理ip排除万难
用Python实现批量下载文件——代理ip排除万难
|
8天前
|
数据采集 API Python
python关于ip代理池的获取和随机生成
python关于ip代理池的获取和随机生成
|
8天前
|
数据采集 存储 安全
python检测代理ip是否可用的方法
python检测代理ip是否可用的方法
|
1月前
|
数据采集 Web App开发 数据安全/隐私保护
Python爬虫-使用代理伪装IP
介绍代理,设置代理,使用代理伪装IP案例
25 0