我正在寻找一种方法来检测任何传入或传出网络流量是否为 PPP(点对点)。有没有办法可以使用 pcap 库嗅探这种类型的流量?
我需要知道流量是否为 PPP 以验证某个条件的原因。该条件是如果启用 OSPF 选项字段中的 DC(需求电路)位,则必须为该网络启用 PPP。只有点对点网络才能充分利用 OSPF 需求电路 (RFC 1793)。
我正在寻找一种方法来检测任何传入或传出网络流量是否为 PPP(点对点)。有没有办法可以使用 pcap 库嗅探这种类型的流量?
我需要知道流量是否为 PPP 以验证某个条件的原因。该条件是如果启用 OSPF 选项字段中的 DC(需求电路)位,则必须为该网络启用 PPP。只有点对点网络才能充分利用 OSPF 需求电路 (RFC 1793)。
RFC 1793中的“点对点”不是指特定类型的流量,而是指特定类型的网络。 例如,运行点对点协议的串行线路上的所有流量都是“点对点流量”;以太网上的任何流量都不是“点对点”的。非点对点流量可以通过点对点网络进行隧道传输,点对点流量可以通过非点对点网络进行隧道传输,但是在隧道的情况下,通常会有一个网络接口(在软件意义上,例如ifconfig -a
在大多数 UN*X 系统中列出的内容或ipconfig/all
将在 Windows 上列出)用于隧道流量,以及较低级别网络适配器的网络接口。
在大多数 UN*X 上,您可以使用SIOCGIFFLAGS
ioctl 获取网络接口的标志,其中一个标志是IFF_POINTOPOINT
标志,它指示该接口的网络是否是点对点网络。
在 Windows 上,我找不到 ioctl 来获取特定接口的标志,但SIO_GET_INTERFACE_LIST
Winsock ioctl将返回一个INTERFACE_INFO结构,iiFlags
其中包含包含该IFF_POINTOPOINT
标志的成员。