python的字符串

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.')
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7663302
  • 这篇博客你也可以参考下:Python判断IP是否合法(IPV4)
  • 除此之外, 这篇博客: python字符串中的 3、IPV4合法性判断: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 编写一个函数来验证输入的字符串是否是有效的 IPv4 ?

    • IPv4 地址由十进制数和点来表示,每个地址包含4个十进制数,其范围为 0 - 255, 用(".")分割。
    • IPv4 地址内的数不会以 0 开头。比如,地址 172.16.254.01 是不合法的
      在这里插入图片描述
    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地址合法");
    

    在这里插入图片描述