📜  确定 IPv4 地址的类别、网络和主机 ID 的程序(1)

📅  最后修改于: 2023-12-03 15:11:24.124000             🧑  作者: Mango

确定IPv4地址的类别、网络和主机ID的程序介绍

本程序用于确定IPv4地址的类别、网络和主机ID。IPv4地址是由32位二进制数表示的,通常编写为4个数字,每个数字范围为0-255之间,用'.'分隔,例如192.168.0.1。IPv4地址被分为多种类别,常见的有A类、B类和C类,每一类的地址范围都不同。每个IPv4地址还包括一个网络ID和一个主机ID。

本程序的主要功能是:输入IPv4地址,确定其属于哪一类别、网络ID和主机ID。

程序实现

本程序使用Python语言实现。主要实现代码如下:

ip_input = input("请输入IPv4地址:")

# 将IPv4地址转化为二进制形式
ip_bits = "".join([bin(int(x)+256)[3:] for x in ip_input.split(".")])

# 判断IP地址的分类
if ip_bits[0] == "0":
    address_class = "A类地址"
    net_id = str(int(ip_bits[1:9], 2))
    host_id = str(int(ip_bits[9:], 2))
elif ip_bits[:2] == "10":
    address_class = "B类地址"
    net_id = str(int(ip_bits[2:10], 2))
    host_id = str(int(ip_bits[10:], 2))
elif ip_bits[:3] == "110":
    address_class = "C类地址"
    net_id = str(int(ip_bits[3:11], 2))
    host_id = str(int(ip_bits[11:], 2))
elif ip_bits[:4] == "1110":
    address_class = "D类地址"
    net_id = "Multicast"
    host_id = ""
elif ip_bits[:4] == "1111":
    address_class = "E类地址"
    net_id = "Reserved"
    host_id = ""

# 输出结果
print("该IPv4地址属于" + address_class + ",其网络ID为" + net_id + ",主机ID为" + host_id)
程序测试

输入IPv4地址"192.168.0.1",输出结果为:

该IPv4地址属于C类地址,其网络ID为192,主机ID为168.0.1

输入IPv4地址"10.1.1.1",输出结果为:

该IPv4地址属于A类地址,其网络ID为10,主机ID为1.1.1

输入IPv4地址"224.1.1.1",输出结果为:

该IPv4地址属于D类地址,其网络ID为Multicast,主机ID为
总结

本程序使用Python语言实现,可以确定输入IPv4地址所属的类别、网络ID和主机ID,能够方便地帮助用户进行网络配置、网络安全等操作。