Python 如何查找网络ID

Python 如何查找网络ID,python,ip-address,Python,Ip Address,我想在python中使用ipaddress和subnetmask之间的按位操作查找网络id。我想使用这个传统方法,我的示例代码在这里 hostname=input("Enter the IP Address: ") print(hostname) if hostname >= "0.0.0.0" and hostname <= "127.255.255.255": print("Class A")

我想在python中使用ipaddress和subnetmask之间的按位操作查找网络id。我想使用这个传统方法,我的示例代码在这里

hostname=input("Enter the IP Address: ")
print(hostname)
if hostname >= "0.0.0.0" and hostname <= "127.255.255.255":
    print("Class A")
    print("The default subnet mask is: 255.0.0.0")
    j=(hostname & 255.0.0.0)
    print("The network id is ",j)
hostname=input(“输入IP地址:”)
打印(主机名)

如果主机名>=“0.0.0.0”且主机名,因为您正在接受输入,请始终确保对输入进行清理。 使用或
ipaddress.ip\u network()
首先确保给定的输入是有效的ip

此外,输入的主机名是字符串,因此按位操作将失败

使用
ipaddress.ip\u地址(主机名)
后,您将获得一个
IPv4Address
对象,该对象将允许您检查许多属性

ipaddress
标准包中还有其他帮助函数,用于获取CIDR值和创建
IPvXNetwork
对象,也许这就是您要查找的,请检查

大致如下:

import ipaddress

try:
    inp = input("Enter the IP Address: ")
    iface = ipaddress.ip_interface(inp)
except ValueError as e:
    # crude way of handling and printing errors
    # there are elegant ways to handle and proceed
    print(e)
    exit(1)
else:
    netword_id = iface.network
    hostname = iface.ip


注意:我对原始答案做了一些编辑,您可能希望使用
ipaddress.ip\u interface()

标记您正在使用的语言,解释运行此代码时发生的情况,并解释这是不正确或不充分的结果的原因。(这可能是因为您试图使用没有真正意义的字符串进行操作,需要先转换为整数。)好的,我会尝试,但请告诉我您的字符串的基本语法solution@ComicsVibe,请查看更新后的答案,我还提供了一个链接,指向使用此
ipaddress
模块的Python操作部分,以及处理一般的IP地址