OpenAI 100美元API额度使用指南:从开发环境配置到成本优化
2026/7/23 2:10:44
判断两个IPv4地址是否在同一个子网的核心原理是:将每个IP地址与子网掩码进行按位与(AND)运算,得到网络地址(网络号)。如果两个网络地址相同,则它们属于同一个子网;否则,不属于。
获取信息:需要两个IP地址和同一个子网掩码(通常两者使用相同的掩码)。
转换为二进制(可选,手算时需要;程序中可直接用整数运算):
按位与(AND)运算:
比较结果:
计算:
计算:
计算:
importipaddressdefis_same_subnet(ip1:str,ip2:str,mask:str)->bool:"""mask可以是'255.255.255.0'或'24'"""try:network1=ipaddress.ip_network(f"{ip1}/{mask}",strict=False)network2=ipaddress.ip_network(f"{ip2}/{mask}",strict=False)returnnetwork1.network_address==network2.network_addressexceptValueError:returnFalse# IP或掩码无效# 测试print(is_same_subnet('192.168.1.10','192.168.1.20','24'))# Trueprint(is_same_subnet('192.168.1.10','192.168.2.20','24'))# False这种方法是网络协议的标准方式,适用于路由判断和网络配置。