WinPcap學習筆記(1)

配置環境

  • Windows 10
  • Visual Studio 2017

配置步驟

  1. 安裝winpcap
  2. 下載wpdpack
  3. 啓動vs2017
  4. 新建visual C++空項目
  5. 項目->屬性->左側配置屬性->VC++目錄,修改包含目錄和庫目錄到wpdpack的include和lib
  6. 項目->屬性->C/C++->預處理器->預處理器定義,添加_XKEYCHECK_H; HAVE_REMOTE;WPCAP;WIN32
  7. 項目->屬性->連接器->輸入->附加依賴項,添加Packet.lib;wpcap.lib;ws2_32.lib

報錯:沒法打開源文件sys/time.h和u_int
緣由:這些都是unix系統的東西,須要在主文件中指明是windows系統
解決方法:#define WIN32ios

報錯:找不到源文件stdafx.h
緣由:已經再預編譯頭中定義,不須要多餘includec++

報錯:const char 與char *不兼容
解決方法:屬性 -> C/C++ -> 語言 -> 符合模式 -> 否windows

Demo

#include "pcap.h"
#include "windows.h"
#include <iostream>

using namespace std;

#pragma comment(lib, "wpcap.lib")
int main()
{
	pcap_if_t *alldevs;
	pcap_if_t *d;
	int i = 0;
	char errbuf[PCAP_ERRBUF_SIZE];

	/*獲取本地機器設備列表*/
	if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL /* auth is not needed */, &alldevs, errbuf) == -1)
	{
		fprintf(stderr, "Error in pcap_findalldevs_ex: %s\n", errbuf);
		exit(1);
	}

	/*打印列表*/
	for (d = alldevs; d != NULL; d = d->next)
	{
		printf("%d.%s", ++i, d->name);
		if (d->description)
			printf("(%s)\n", d->description);
		else
			printf("(No description available)\n");
	}

	int a; cin >> a;//卡一下輸出
	if (i == 0)
	{
		printf("\nNo interfaces found!Make sure WinPcap is installed.\n");
		return 0;
	}

	pcap_freealldevs(alldevs);
}

參考資料:

詳細安裝配置
補充說明1
補充說明2spa

相關文章
相關標籤/搜索