编写程序,输入的IP地址,判断其是否合法一般用点分方式来显示,用点将IP地址分成4个部分,每个部分8位,表示成一个十进制的无符号整数,范围在0~255之间,如192.168.10.160是一个合法的IP地址。
编写程序,输入的IP地址,判断其是否合法。
基于Monster 组和GPT的调写:
def is_valid_ip(ip):
# 首先将IP地址按照点号进行拆分
parts = ip.split(".")
# 判断IP地址是否由4个部分组成
if len(parts) != 4:
return False
# 对每个部分进行检查,确保其都是0~255之间的数字
for part in parts:
try:
num = int(part)
if num < 0 or num > 255:
return False
except ValueError:
return False
# 如果程序执行到了这里,说明IP地址是合法的
return True
# 示例用法
ip = input("请输入IP地址:")
if is_valid_ip(ip):
print("输入的IP地址合法")
else:
print("输入的IP地址不合法")
请编写一个函数实现将IP地址转换成一个整数。
如 10.3.9.12 转换规则为:
10 00001010
3 00000011
9 00001001
12 00001100
再将以上二进制拼接起来计算十进制结果:00001010 00000011 00001001 00001100 = ?
def v1(addr):
# 取每个数
id = [int(x) for x in addr.split(".")]
print(id)
return sum(id[i] << [24, 16, 8, 0][i] for i in range(4))
print(v1("127.0.0.1"))
# [127, 0, 0, 1]
# 2130706433
------------------------------------------------