perl 中实现 ip2long与long2ip

长整数和ip互转

echo 长整数|perl -ne '@a = unpack('C4',(pack('N',$_))); print (join "\.",@a);'
echo ip地址|perl -ne 'print unpack('N',(pack('C4',(split( /\./,$_)))))'

#示例:
echo 58.56.212.194|perl -ne 'print unpack('N',(pack('C4',(split( /\./,$_)))))'
echo 976803010|perl -ne '@a = unpack('C4',(pack('N',$_))); print (join "\.",@a);'

 

写成函数

 

print ip2long("58.56.212.194")."\n";
print long2ip("976803010")."\n";
sub ip2long {
    my $long = unpack('N',(pack('C4',(split( /\./,$_[0])))));
    return $long;
}
sub long2ip {
    my @a = unpack('C4',(pack('N',$_[0]))); 
    my $ip = (join "\.",@a);
    return $ip;
}

原文:http://techbbs.zol.com.cn/1/84_128.html

 

Tags: ip2long , perl

上一篇: SMPP 3.3时间格式   下一篇: 将Excel文件数据导入MySql数据库

提交疑问

回顶部