我想将IPv6 ip的短格式转换为扩展格式。假设我有ipv6 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语言编写脚本吗?
代码应该是动态的,无论我给扩展格式的格式都应该是扩展格式。
答案 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)