1

よし、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")

誰でも助けていただければ幸いです

4

1 に答える 1