计算Python中的子网地址

时间:2020-08-16 10:25:33

标签: python

我的代码:

def apply_network_mask(host_address, netmask):
    ip = host_address.split(".")
    net = netmask.split(".")

    ip_1 = int(ip[0])
    ip_2 = int(ip[1])
    ip_3 = int(ip[2])
    ip_4 = int(ip[3])

    net_1 = int(net[0])
    net_2 = int(net[1])
    net_3 = int(net[2])
    net_4 = int(net[3])

    print(f"{ip_1 & net_1} {ip_2 & net_2} {ip_3 & net_3} {ip_4 & net_4}")

结果:

192 0 0 0

我需要的是这个

192.0.0.0

"192.0.0.0"

My code

1 个答案:

答案 0 :(得分:1)

正如评论中已经提到的,您可以添加“。”以您的打印格式。

不建议将列表项分配给单个变量。
您可以使用下面的代码代替

def apply_network_mask(host_address, netmask):
    print('.'.join([str(int(a)&int(b)) for a,b in zip(host_address.split('.'),netmask.split('.'))]))