0

我应该是盲目的,因为我在 ubuntu 和 debian 的发行版中找不到这些可用的命令,在包含它们的软件包中也找不到。

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

谢谢

4

2 回答 2

3

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

socketPython 中的模块:

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

于 2011-05-08T00:22:37.540 回答
0

冒着自我推销的风险,在这个 Github repo中提供了纯 Bash 实现。

于 2019-10-11T06:12:35.830 回答