查看TCP/IP堆栈的表示,如图中所示:
我会有兴趣(只是出于好奇)尝试阅读第2层(数据链接)标题。这有可能吗?我认为 net 模块只允许访问传输层数据包。我看到有一个 udp 模块也一样,但同样,我怀疑我能从中获得数据链路层包信息。
net
udp
以上是否正确?我是否认为传输层包数据通过V8/ETC实现提供给JavaScript运行时,并且较低级别的包数据(即以太网层)不暴露于node.js运行时?
node.js可以访问 layer 3 及以上。捕捉 layer 2 需要调用外部程序的数据包,如 wireshark 或者使用集成这些低级工具的模块。
layer 3
layer 2
Wireshark有一个 command line interface ,您可以使用 child_process .
child_process