如何使用TCL / Perl规范化IPv6 ip?

时间:2016-05-05 18:11:27

标签: python perl tcl ipv6

我想将IPv6 ip的短格式转换为扩展格式。假设我有ipv​​6 ip为fe80 :: 1到fe80:0000:0000:0000:0000:0000:0000:0001和fe80:0010 :: 1为fe80:0010:0000:0000:0000:0000:0000: 0001等。你能帮忙用TCL或Perl或Python语言编写脚本吗?

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

3 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:4)

在Tcl中,使用ip包:

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

文档:ip

答案 2 :(得分:3)

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

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

import netaddr

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

print ip.format(dialect=netaddr.ipv6_verbose)