ZBLOG

ipv4的字符串地址和ipv6的字符串地址,如何用函数区分

要区分IPv4和IPv6的字符串地址,可以使用以下函数:

import socket

def get_ip_address_type(ip_str):
    try:
        # 尝试将字符串解析为IPv4地址
        socket.inet_pton(socket.AF_INET, ip_str)
        return "IPv4"
    except OSError:
        pass

    try:
        # 尝试将字符串解析为IPv6地址
        socket.inet_pton(socket.AF_INET6, ip_str)
        return "IPv6"
    except OSError:
        pass
    
    # 如果都无法解析,则返回未知类型
    return "Unknown"

# 测试示例
ipv4_address = "192.168.0.1"
ipv6_address = "2001:0db8:85a3:0000:0000:8a2e:0370:7334"

print(get_ip_address_type(ipv4_address))  # 输出:IPv4
print(get_ip_address_type(ipv6_address))  # 输出:IPv6

该函数使用了Python的socket库来进行IP地址解析。首先,尝试将字符串解析为IPv4地址,如果成功则返回”IPv4”;否则,再尝试将字符串解析为IPv6地址,如果成功则返回”IPv6”。如果都无法解析,则返回”Unknown”表示未知类型。

你可以根据需要修改或整合这个函数来适应你的程序。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://sdn.0voice.com/?id=2569

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?