Python 如何使用TCL/Perl规范化ipv6ip?

Python 如何使用TCL/Perl规范化ipv6ip?,python,perl,tcl,ipv6,Python,Perl,Tcl,Ipv6,我想将IPv6 ip的短格式转换为扩展格式。假设ipv6的ip为fe80::1到fe80:0000:0000:0000:0000:0001,fe80:0010::1为fe80:0010:0000:0000:0000:0000:0001,依此类推。您能帮助编写一个使用TCL、Perl或Python语言的脚本吗 代码应该是动态的,无论我给出什么格式,扩展都应该是扩展格式。对于Python,我建议使用来处理任何类型的IP地址。在您的情况下,它能够以不同的格式格式化IPv6 对于您的特定用例,您应该能够

我想将IPv6 ip的短格式转换为扩展格式。假设ipv6的ip为fe80::1到fe80:0000:0000:0000:0000:0001,fe80:0010::1为fe80:0010:0000:0000:0000:0000:0001,依此类推。您能帮助编写一个使用TCL、Perl或Python语言的脚本吗


代码应该是动态的,无论我给出什么格式,扩展都应该是扩展格式。

对于Python,我建议使用来处理任何类型的IP地址。在您的情况下,它能够以不同的格式格式化IPv6

对于您的特定用例,您应该能够做到:

import netaddr

ip = netaddr.IPAddress("fe80::1")

print ip.format(dialect=netaddr.ipv6_verbose)

在Perl中,使用
Net::IP
模块:

$ perl -MNet::IP=:PROC -le'print ip_expand_address("fe80::1", 6);'
fe80:0000:0000:0000:0000:0000:0000:0001

在Tcl中,使用
ip
包:

% package require ip
1.2.2
% ::ip::normalize fe80::1
fe80:0000:0000:0000:0000:0000:0000:0001

文档说明:package

作为旁注,您应该接受任何有效的IPv6格式,但您应该始终按照返回压缩格式。谢谢。我可以看到::ip::normalize的源代码吗?我想查看代码流。@user3441116:源代码是,请注意版权和许可条款。谢谢。我只是想了解这个过程背后的逻辑。