使用 Node.js 我可以访问多少网络堆栈?
How much of the network stack do I have access to using Node.js?
查看 TCP/IP 堆栈的表示,例如在这张照片中:
我有兴趣(出于好奇)尝试阅读第 2 层(数据 link)headers。这可能吗?我认为 net
模块只允许访问传输层数据包。我看到也有一个 udp
模块,但同样我怀疑我能否从中获取数据 link-layer 数据包信息。
以上是否正确?我认为 transport-layer 数据包数据通过 v8/etc 实现可用于 JavaScript 运行时并且较低级别的数据包数据(即以太网层)未暴露给 Node.js 运行时间?
node.js 可以访问 layer 3
及以上。要捕获 layer 2
数据包,您需要调用外部程序,例如 wireshark,或使用集成这些低级工具的模块。
Wireshark 有一个 command line interface,您可以使用 child_process
从节点调用它。
查看 TCP/IP 堆栈的表示,例如在这张照片中:
我有兴趣(出于好奇)尝试阅读第 2 层(数据 link)headers。这可能吗?我认为 net
模块只允许访问传输层数据包。我看到也有一个 udp
模块,但同样我怀疑我能否从中获取数据 link-layer 数据包信息。
以上是否正确?我认为 transport-layer 数据包数据通过 v8/etc 实现可用于 JavaScript 运行时并且较低级别的数据包数据(即以太网层)未暴露给 Node.js 运行时间?
node.js 可以访问 layer 3
及以上。要捕获 layer 2
数据包,您需要调用外部程序,例如 wireshark,或使用集成这些低级工具的模块。
Wireshark 有一个 command line interface,您可以使用 child_process
从节点调用它。