gpt4 book ai didi

python - python 判断两个ip地址是否是同一个网络

转载 作者:行者123 更新时间:2023-12-01 05:37:01 24 4
gpt4 key购买 nike

好吧,所以我需要输入两个输入的 IP 地址,例如 128.233.17.12,然后是给定的子网掩码,并且如果它们位于同一网络上,则能够输出。
我设法将它们转换为二进制并正确格式化,但我现在不知道如何比较它们。为了确定它们是否在同一网络上,我需要进行垂直加法。浏览器

#128.233.17.12 = 10000000111010010001000|100001100
#128.233.12.17 = 10000000111010010000110|000010001
#255.255.0.0 = 11111111111111110000000000000000

仅当子网(底部)为 1 时,顶部两个 IP 才需要相同。因此,它们位于同一网络上。这是迄今为止我的代码,但我不确定如何输入所有变量。

IPAdress1 = input("Please enter a dotted quad notation IP address: ")
IPAdress2 = input("Please enter another: ")
SubnetMask = input("Please enter the subnet mask: ")

binaryIP1 = [bin(int(IPAdress1))[2:].rjust(8,'0') for IPAdress1 in IPAdress1.split('.')]
IP1 = ''.join(binaryIP1)

binaryIP2 = [bin(int(IPAdress2))[2:].rjust(8,'0') for IPAdress2 in IPAdress2.split('.')]
IP2 = ''.join(binaryIP2)

binarysub = [bin(int(SubnetMask))[2:].rjust(8,'0') for SubnetMask in SubnetMask.split('.')]
sub = ''.join(binarysub)
i=0
j=0

for (i,j) in zip(binaryIP1,binaryIP2):
if i == j:
print("Same Network" )
else:
print("Different networks")

感谢任何人的帮助

最佳答案

我推荐netaddr使用地址的模块:

from netaddr import IPNetwork

if IPNetwork("128.233.17.12/255.255.0.0") == IPNetwork("128.233.12.17/255.255.0.0"):
print "Same!"
else:
print "Different!"

关于python - python 判断两个ip地址是否是同一个网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18691147/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com