IPV4中IP地址是用一个32位无符号整数来表示,一般用点分方式来显示,用点将IP地址分成4个部分,每个部分8位,表示成一个十进制的无符号整数,范围在0~255之间,如192.168.10.160是一个合法的IP地址。
不知道你要做什么,以下是字符串转ip和ip转字符串
import socket
ip_address = '192.168.10.160'
packed_ip = socket.inet_aton(ip_address)
ip_integer = int.from_bytes(packed_ip, byteorder='big')
print(ip_integer)
import socket
ip_integer = 3232238384
packed_ip = ip_integer.to_bytes(4, byteorder='big')
ip_address = socket.inet_ntoa(packed_ip)
print(ip_address)
至于验证是否合法,可以
import socket
def validate_ip_address(ip_address: str) -> bool:
try:
socket.inet_aton(ip_address)
return True
except (TypeError, socket.error):
return False
ip_address = '192.168.10.160'
if validate_ip_address(ip_address):
print(f'{ip_address} is a valid IP address.')
else:
print(f'{ip_address} is not a valid IP address.')
编写一个函数来验证输入的字符串是否是有效的 IPv4 ?
ip = input("请输入ip:");
item = ip.split('.');
for i in item:
if i[0] == '0' and i[1] != '0':
print("ip地址不合法");
exit();
elif int(i) < 0 or int(i) > 255:
print("ip地址不合法");
exit();
print("ip地址合法");