我应该是盲目的,因为我在 ubuntu 和 debian 的发行版中找不到这些可用的命令,在包含它们的软件包中也找不到。
我应该自己在 C 中编码和编译它们(或者用 perl 或任何语言编写或查找此代码)还是它(我的意思是 inet_aton、inet_ntoa ..)在这些发行版中的某个地方可用作 bash 命令?
谢谢
inet_ntoa
并且inet_aton
不是命令——它们是库函数,用于在 IP 地址的文本和二进制表示之间进行转换。
Socket
您可以使用Perl中的模块轻松获得这些功能:
$ 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 字符,但一般情况下你不能指望这是真的......)
冒着自我推销的风险,在这个 Github repo中提供了纯 Bash 实现。