python:手动输入网络IPv4地址,并判断此IP地址属于哪一类IP地址,以及IP地址是否正常
时间: 2024-09-14 12:04:34 浏览: 31
Python—给你一个字符串,你怎么判断是不是ipv4地址?手写这段代码,并写出测试用例
5星 · 资源好评率100%
在Python中,可以通过获取用户手动输入的IPv4地址,并根据IP地址的格式来判断它属于哪一类IP地址以及是否正常。IPv4地址是一个32位的数字,通常以四组十进制数表示,每组数字的范围是0到255,并且组与组之间用点号分隔。
IPv4地址分类是根据地址的第一个数字范围来划分的,大致分为以下五类:
- A类:第一组数字在1到126之间(0和127留作特殊用途)
- B类:第一组数字在128到191之间
- C类:第一组数字在192到223之间
- D类(多播地址):第一组数字在224到239之间
- E类(保留地址):第一组数字在240到255之间
IP地址是否正常,可以通过判断其是否符合以上类别的划分规则,以及每组数字是否在0到255的范围内来确定。
下面是一个简单的Python脚本示例,用于实现上述功能:
```python
def check_ip(ip):
try:
# 分割IP地址,将其转换为一个由4个数字组成的列表
octets = [int(octet) for octet in ip.split('.')]
if len(octets) != 4:
return "IP地址格式不正确。"
# 检查每一组数字是否在0到255之间
for octet in octets:
if octet < 0 or octet > 255:
return "IP地址不正常,数字超出范围。"
# 判断IP地址类别
if octets[0] >= 1 and octets[0] <= 126:
return "此IP地址属于A类。"
elif octets[0] >= 128 and octets[0] <= 191:
return "此IP地址属于B类。"
elif octets[0] >= 192 and octets[0] <= 223:
return "此IP地址属于C类。"
elif octets[0] >= 224 and octets[0] <= 239:
return "此IP地址属于D类。"
elif octets[0] >= 240 and octets[0] <= 255:
return "此IP地址属于E类。"
else:
return "IP地址不正常,无法判断类别。"
except ValueError:
return "IP地址格式不正确,请确保每组都是数字。"
# 主函数
def main():
ip_input = input("请输入IPv4地址:")
result = check_ip(ip_input)
print(result)
# 运行主函数
if __name__ == "__main__":
main()
```
阅读全文