使用pcap开发便携式网络分析仪应用程序

时间:2013-11-30 10:44:59

标签: c++ winpcap portable-applications

在使用vc ++ 2008开发网络分析器应用程序时,我遇到了可移植性问题。

我正在开发一个使用winpcap分析数据包的应用程序。但是,最近我被要求我的应用程序也应该在solaris和linux上运行..我想问我是否正在使用像PacketOpenAdapter这样的winpcap函数来嗅探适配器..我是否必须重写所有捕获代码从开始使它适用于Windows以外的操作系统?我应该只使用pcap.h使我的应用程序可移植吗?我需要使用libpcap吗?简而言之,我该怎么做才能让它变得便携?

提前thx。

1 个答案:

答案 0 :(得分:1)

  

我想问的是,我正在使用像PacketOpenAdapter这样的winpcap函数来嗅探适配器..我是否必须从开始重写所有捕获代码,使其在Windows以外的操作系统上运行?

您需要使用wpcap.dll中的函数;您不得使用任何 packet.dll函数,除非您 需要使用它们,如果您不使用它们,程序仍然有效,哪种情况仅在Windows上使用它们。

此外,请勿使用仅在Windows上可用的wpcap.dll个功能,例如pcap_open();仅使用pcap_open_live()打开要捕获的设备,仅使用pcap_open_offline()打开已保存的捕获文件。

  

我是否只使用pcap.h使我的应用程序可移植?

  

我需要使用libpcap吗?

在UN * X(Solaris,Linux,OS X,* BSD,HP-UX,AIX等)上使用libpcap,在Windows上使用WinPcap(libpcap移植到Windows),并仅使用可用的函数在libpcap的版本中,您将在UN * X和您在Windows上使用的WinPcap版本中使用。

然后确保您使用的所有 else 可以在UN * X和Windows之间移植,或者如果 使用特定于平台的功能,请确保使用仅适用于特定平台的平台。