以前看人家用WinPcap怪方便的,今天有點時間也上網下了一個,打開VC咱們也來個~~
咱們不寫“Hello World”了,WinPcap寫不出來,咱們就寫個打印本機可用網卡列表的程序吧,這是最簡單的了。
先去http://www.winpcap.org/install/bin/WinPcap_4_0.exe下載安裝WinPcap,
再到 http://www.winpcap.org/install/bin/WpdPack_4_0.zip下載到WinPcap的開發包,解壓後進入那個Examples-pcap文件夾,裏面都是例子,隨便選一個,比如DUPdump吧,把它在複製一份“DUPdump 副本”,改個名兒,這是咱們的第一個程序,就叫test把。進去把裡面的什麽“UDPdump.dsp”、“UDPdump.dsw”改成“test.dsp”、“test.dsw”,再用記事本把這兩個文件打開,將“UDPdump”字樣全部替換成我們的“test”,好這樣人家的UDPdump工程就變成了我們的test工程,用VC打開test工程,在右邊我們可以看到有源文件udpdump.c、頭文件pcap.h和一個庫文件,把那個源文件幹掉,添加一個咱們的main.cpp,裏面填入下列代碼:
main.cpp:
#include
"
pcap.h
"

void
main(
void
)
...
{
pcap_if_t *alldevs;
pcap_if_t *d;
int i=0;
char errbuf[PCAP_ERRBUF_SIZE];
//取得列表
if (pcap_findalldevs(&alldevs, errbuf) == -1)...{
fprintf(stderr,"Error in pcap_findalldevs:%s ", errbuf);
exit(1);
}
//輸出列表
for(d=alldevs;d;d=d->next)...{
printf("%d. %s", ++i, d->name);
if (d->description)...{
printf(" (%s) ", d->description);
}else...{
//Y- 沒有有效的描述
printf(" (無描述) ");
}
}

if(i==0)...{
// Y- 沒有有效的接口,亦可能是因爲沒有安裝winpcap
printf(" 接口沒有找到! 請確認是否正確安裝WinPcap。 ");
return;
}
//释放列表
pcap_freealldevs(alldevs);
}
構建,ok,運行,本機的網卡接口列表出來了~
//注:如果你是XP sp2的工作站,構建時提示找不到什麽Iphlpapi.lib文件,那就得安裝微軟的一個包,大包,上
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/XPSP2FULLInstall.htm
去下吧~~~

本文介绍如何使用WinPcap库在Windows环境下编写程序来获取并打印本地计算机上的所有可用网络适配器列表。通过安装WinPcap及其开发包,并借助VC编译器创建简单示例程序实现这一目标。
1697

被折叠的 条评论
为什么被折叠?



