将 pcap 文件解析为 C++ 中的 sip 消息
Parse pcap files to sip message in c++
我想从 pcap 文件中解析一些信息到我的项目中。
我正在创建可以在 sip 调用中查找错误的分析器。我创建了 class 可以保存这些信息(现在不是全部)。我使用 Windows 和 Codeblocks c++,并为 windows 安装了 pcap 库。
实现此目标的最简单方法是什么?
class Messege
{
private:
int number;
string cseq;
string method;
string callId;
string source;
string destination;
string request;
public:
//set
void setCseq (string newCseq){cseq=newCseq;};
void setNumber (int newNumber){number=newNumber;};
void setMethod (string newMethod){method=newMethod;};
void setSource (string newSource){source=newSource;};
void setDestination (string newDestination){destination = newDestination;};
void setCallId (string newCallId){callId = newCallId;};
void setRequest (string newRequest){request = newRequest;};
//get
int getNumber (){return number;};
string getCseq (){return cseq;};
string getMethod (){return method;};
string getSource (){return source;};
string getDestination () {return destination;};
string getCallId (){return callId;};
string getRequest (){return request;};
};
您可能想查看 libpcap。您可以使用以下命令解析 pcap 文件:
pcap_t *pcap = pcap_open_offline(pcap_filename, errbuf);
int link_layer_type = pcap_datalink(pcap);
pcap_loop(pcap, -1, pcap_handler, NULL);
pcap_close(pcap);
其中 pcap_handler 是您的回调函数:
typedef void (*pcap_handler)(u_char *user, const struct pcap_pkthdr *h, const u_char *bytes);
查找详细信息here。
我想从 pcap 文件中解析一些信息到我的项目中。 我正在创建可以在 sip 调用中查找错误的分析器。我创建了 class 可以保存这些信息(现在不是全部)。我使用 Windows 和 Codeblocks c++,并为 windows 安装了 pcap 库。 实现此目标的最简单方法是什么?
class Messege
{
private:
int number;
string cseq;
string method;
string callId;
string source;
string destination;
string request;
public:
//set
void setCseq (string newCseq){cseq=newCseq;};
void setNumber (int newNumber){number=newNumber;};
void setMethod (string newMethod){method=newMethod;};
void setSource (string newSource){source=newSource;};
void setDestination (string newDestination){destination = newDestination;};
void setCallId (string newCallId){callId = newCallId;};
void setRequest (string newRequest){request = newRequest;};
//get
int getNumber (){return number;};
string getCseq (){return cseq;};
string getMethod (){return method;};
string getSource (){return source;};
string getDestination () {return destination;};
string getCallId (){return callId;};
string getRequest (){return request;};
};
您可能想查看 libpcap。您可以使用以下命令解析 pcap 文件:
pcap_t *pcap = pcap_open_offline(pcap_filename, errbuf);
int link_layer_type = pcap_datalink(pcap);
pcap_loop(pcap, -1, pcap_handler, NULL);
pcap_close(pcap);
其中 pcap_handler 是您的回调函数:
typedef void (*pcap_handler)(u_char *user, const struct pcap_pkthdr *h, const u_char *bytes);
查找详细信息here。