背景
当提到网络数据包嗅探器时,读者会想到一些流行的工具,如tcpdump。本文介绍从头开始编写一个不依赖任何第三方库的数据包嗅探器。我们需要深入挖掘操作系统并找到构建此工具所需的武器。由于不同的操作系统内核具有不同的内部网络实现。本文将重点介绍Linux平台。在年使用Node.js编写CLI(命令行界面)工具不再是一个挑战,因为已经有无数的包可以帮助你做到这一点。但是,编写一个易于扩展且易于更新的版本是另一回事。毕竟,这些“功能”不一定由那里的库提供。那本文在做什么?
本文不会在这里使构建变得过于复杂,要创建的是一个简单的CLI工具,它可以执行某些任务,且有进一步扩展功能的空间。本文构建的项目提供了3个处理字符串的命令:读者可以要求它将字符串拆分为单词,或覆盖默认行为并指定另一个分隔符。
读者可以要求它大写一个字符串。
也可以让它计算一个字符串上有多少个单词。或者,如果想覆盖默认行为,可以计算一个单词(由读者指定)在字符串中出现的次数。
既然这样做是为了发布我们的工具,我们还想提供能想到的所有帮助文本和参数验证。因此,将包括描述、必需和可选属性等内容。这是我们工具工作的屏幕截图,显示默认帮助屏幕:请注意3个命令(split、upper和wc)和额外的“help”命令,该命令将为其他每个命令提供详细信息。
使用的工具
这不会是一个过于复杂的构建,正如在文章开头提到的那样,现在是年,可以使用很多库。使用Commander(