编写一个程序,向用户查询源 IP 地址、目标 IP 地址和 32 位子网掩码。全部以点十进制表示法输入。然后程序将确定 src 和 dst 是否在同一个子网上。然后它将以二进制格式打印掩码和两个地址(在单独的行上,彼此垂直对齐)并指示主机应该为谁进行 ARP。
这是我到目前为止所拥有的:
#!/usr/bin/python3
src_ip = input("Please enter the Source IP Address: ")
dst_ip = input("Please enter the Destination IP Address: ")
sub_mask = input("Please enter the Subnet Mask: ")
#convert each to binary
base2_src = [format(int(x), '08b') for x in src_ip.split('.')]
base2_dst = [format(int(x), '08b') for x in dst_ip.split('.')]
base2_mask = [format(int(x), '08b') for x in sub_mask.split('.')]
#print out IP addresses in binary
print("Source IP: ", base2_src)
print("Destination IP: ", base2_dst)
print("Subnet Mask :", base2_mask)
到目前为止,我能够获取输入,将其转换为二进制并将其输出到列表中。如何确定输入的源和目标是否与用户输入的子网在同一个子网上?我应该将二进制转换后的子网掩码与什么进行比较?