Omnet++ 如何在inet(版本4)框架中获取ppp模块中的controlinfo

Omnet++ 如何在inet(版本4)框架中获取ppp模块中的controlinfo,omnet++,inet,Omnet++,Inet,我对OMNET++仿真并不陌生,但这对我来说是一个挑战 我想开发一些需要获取源地址和目标地址的嗅探功能。我的代码是基于ppp模块的。我尝试了很多方法,但我得到的要么是模拟意外停止,要么是无效操作 我试过: auto *info = packet->getControlInfo(); 然后 EV_INFO因为INET 4.x控制信息不再使用。相反,引入了块和标记。看一看。 简言之,为了从PPP报头获取地址,可以使用以下代码: auto packet = check_and_cast<

我对OMNET++仿真并不陌生,但这对我来说是一个挑战

我想开发一些需要获取源地址和目标地址的嗅探功能。我的代码是基于ppp模块的。我尝试了很多方法,但我得到的要么是模拟意外停止,要么是无效操作

我试过:

auto *info = packet->getControlInfo();
然后


EV_INFO因为INET 4.x控制信息不再使用。相反,引入了块和标记。看一看。
简言之,为了从PPP报头获取地址,可以使用以下代码:

auto packet = check_and_cast<Packet *>(msg);
const auto& pppHeader = packet->peekAtFront<PppHeader>();
auto addr = pppHeader->getAddress();
auto packet=check_和_cast(msg);
const auto&pppHeader=packet->peekAtFront();
自动添加=pppHeader->getAddress();

顺便说一句:PPP帧既没有源地址也没有目标地址。

您使用的是什么版本的INET?我正在使用INET 4谢谢Jerzy D。非常感谢您的回复。。。这是一段非常有用的代码。它工作得很好,每包255美元。我现在的问题是如何在数据包通过路由器时获得ip地址。我得到了我所需要的一切。仅缺少源和目标的ip地址。我得到了持续时间、到达时间、字节长度、队列大小等。你应该解封一个PPP数据包,获取有效负载,然后获取IPv4报头,方法与我的回答类似。是的,我得到了。现在效果很好。谢谢。
auto packet = check_and_cast<Packet *>(msg);
const auto& pppHeader = packet->peekAtFront<PppHeader>();
auto addr = pppHeader->getAddress();