2011-05-07 68 views
0

我应该是盲目的,因为我找不到在Ubuntu和Debian的发行版中可用的这些命令,既不包含它们的软件包。linux bash inet_ntoa inet_aton

我是否可以自己编写并编译它们(或者用perl或任何语言编写或查找此代码)还是它(我的意思是inet_aton,inet_ntoa ..)可用作这些发行版中某处的bash命令?

THX

+0

我很惊讶你需要他们在bash命令行。通过一切手段,实现它们(在perl中对我来说看起来很理智) – sehe 2011-05-07 22:05:38

+0

仅仅因为我有一些用bash编写的管理脚本,并且出于可移植性的原因,我想避免为了1行需要而调用其他解释器。 – hornetbzz 2011-05-08 13:18:41

回答

3

inet_ntoainet_aton不是命令 - 他们的库功能,文本和IP地址的二进制表示之间的转换。

你可以在这些功能很容易被使用在Perl Socket模块:

$ perl -e 'use Socket; print inet_aton("123.45.67.89"), "\n"' 
{-CY 
$ perl -e 'use Socket; print inet_ntoa("{-CY"), "\n"' 
123.45.67.89 

socket模块在Python:

$ python -c 'import socket; print socket.inet_aton("123.45.67.89")' 
{-CY 
$ python -c 'import socket; print socket.inet_ntoa("{-CY")' 
123.45.67.89 

,但我不知道为什么你要在bash脚本中处理地址的二进制表示。 (在上面的例子中,地址123.45.67.89的字节恰好对应于可打印的ASCII字符,但是你不能指望它是真的......)