linux bash inet_ntoa inet_aton

时间:2011-05-07 21:10:30

标签: linux debian inet

我应该失明,因为我无法在ubuntu和debian的发行版中找到这些命令,也不包含包含它们的包。

我应该自己编写和编译它们(或者用perl或其他任何语言编写或查找这些代码),或者它(我的意思是inet_aton,inet_ntoa ..)在这些发行版中的某个地方作为bash命令提供?

THX

2 个答案:

答案 0 :(得分: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

或Python中的socket模块:

$ 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字符,但你不能指望它一般都是真的......)

答案 1 :(得分:0)

冒着自我推广的风险,可以使用at this Github repo的纯Bash实现。