よし、128.233.17.12 のように入力された 2 つの入力 IP アドレスと、特定のサブネット マスクを取得し、それらが同じネットワーク上にある場合に出力できるようにする必要があります。
それらをバイナリに変換して正しくフォーマットすることができましたが、今はそれらを比較する方法がわかりません。それらが同じネットワーク上にあるかどうかを判断するには、垂直加算を行う必要があります。IE
#128.233.17.12 = 10000000111010010001000|100001100
#128.233.12.17 = 10000000111010010000110|000010001
#255.255.0.0 = 11111111111111110000000000000000
サブネット (下部) が 1 の場合にのみ、上位 2 つの 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")
誰でも助けていただければ幸いです