python验证公网ip与内网ip

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

公网IP和内网IP都是用于标识网络设备的地址,但它们有着不同的作用和特点。


公网IP是由互联网服务提供商(ISP)分配给用户设备的唯一标识符。它是全球范围内唯一的,并且可以被其他网络设备使用来寻找和连接特定的设备。公网IP通常用于连接到互联网,允许用户访问全球范围内的网络资源。


内网IP是指在私有网络中使用的IP地址。一个内网可以是一个公司、学校或家庭网络。在内网中,设备通常使用私有IP地址,这些地址无法从公共互联网中访问到。内网IP地址通过路由器转发到公网,从而实现对互联网的访问。

 

Python作为一种解释型语言,可以方便地操作网络接口,支持使用Socket API访问网络资源。下面将通过Python举例说明如何验证公网IP和内网IP。


验证公网IP地址


Python中验证公网IP地址的方法主要是通过访问指定的网站或使用Python库中的特定模块来获取当前系统的公网IP地址。


1.使用urllib库访问百度

import urllib.request
 
def get_public_ip(): data = urllib.request.urlopen('http://www.baidu.com/s?wd=ip').read() data = data.decode('UTF-8') start = data.find('您的IP地址是') if start == -1: return False start += 7 end = data.find('&', start) if end == -1: return False return data[start:end]
 
print(get_public_ip())


2.使用requests库

import requests
 
def get_public_ip(): url = 'https://api.ipify.org' response = requests.get(url) return response.text.strip()
 
print(get_public_ip())


验证内网IP地址


Python中验证内网IP地址的方法也比较简单,可以通过获取本地网络设置信息或使用Python标准库中的socket模块来获取。


1.使用socket模块

import socket
 
def get_local_ip(): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect(('8.8.8.8', 80)) ip_address = s.getsockname()[0] s.close() return ip_address
 
print(get_local_ip())


2.使用psutil库

import psutil
 
def get_local_ip(): addrs = psutil.net_if_addrs() for interface_name, interface_addresses in addrs.items(): for address in interface_addresses: if str(address.family) == 'AddressFamily.AF_INET': return address.address
 
print(get_local_ip())


总结


通过以上代码,我们可以轻松地验证公网IP地址和内网IP地址。需要注意的是,公网IP地址是唯一的,因为它是由ISP分配的,而内网IP地址在本地网络中是唯一的,但在全球范围内并不唯一。因此,在编写代码时需要考虑不同的使用场景。

相关文章
|
2月前
|
网络协议 网络安全 数据库
python验证公网ip与内网ip
python验证公网ip与内网ip
28 0
|
4月前
|
存储 安全 网络协议
Python 教程之 Django(9)对模型中的字段进行验证
Python 教程之 Django(9)对模型中的字段进行验证
30 0
Python 教程之 Django(9)对模型中的字段进行验证
|
9月前
|
Python
使用python将数据集划分为训练集、验证集和测试集
使用python将数据集划分为训练集、验证集和测试集
|
4月前
|
Go Python 机器人
Python每日一练(20230410) 不同路径、戳气球、验证二叉搜索树
Python每日一练(20230410) 不同路径、戳气球、验证二叉搜索树
34 0
Python每日一练(20230410) 不同路径、戳气球、验证二叉搜索树
|
4月前
|
机器学习/深度学习 Shell 数据安全/隐私保护
Python 自动化指南(繁琐工作自动化)第二版:八、输入验证
Python 自动化指南(繁琐工作自动化)第二版:八、输入验证
28 0
|
4月前
|
Python
python 函数参数验证器 pyparamvalidate
python 函数参数验证器 pyparamvalidate
40 1
|
5月前
|
存储 数据库 Python
Python 教程之 Django(9)对模型中的字段进行验证
Python 教程之 Django(9)对模型中的字段进行验证
37 0
|
Python
Python:利用蒙特卡洛方法模拟验证概率分布
这个题目可以使用数学方法,将其答案显式地写出来,但是验证解出来的答案是否正确,就可以使用蒙特卡洛方法了。
359 0
Python:利用蒙特卡洛方法模拟验证概率分布
|
11月前
|
Python
Python——验证密码学常见运算
Python——验证密码学常见运算
53 0
|
11月前
|
小程序 数据安全/隐私保护 Python
Python——验证椭圆曲线加密点乘运算
Python——验证椭圆曲线加密点乘运算
111 0