确定同一子网上的源和目标IP(Python)

时间:2013-11-03 17:37:56

标签: python input ip ip-address subnet

编写一个程序,向用户查询src 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)

到目前为止,我能够获取输入,将其转换为二进制并将其输出到列表中。如何确定输入的源和目标是否与用户输入的子网在同一子网上?我应该将二进制转换的子网掩码与?

进行比较

1 个答案:

答案 0 :(得分:0)

Mask通过对掩码和IP地址执行按位AND运算来标识IP地址所属的子网。结果将是子网地址。因此,您可以为源和目标执行此操作,然后比较结果。