Chinaunix首页 | 论坛 | 博客
  • 博客访问: 143113
  • 博文数量: 12
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 357
  • 用 户 组: 普通用户
  • 注册时间: 2013-04-26 18:07
个人简介

要成为一个出色的程序猿,还是很讲究猿粪的!

文章存档

2015年(3)

2014年(2)

2013年(7)

分类: Windows平台

2013-06-07 11:36:17

1、下载Microsoft Platform SDK
找到跟你的系统匹配的SDK,可能有多个包,我下的有16个,一个一个地下,解压第一个包,点击安装
2、下载winpcap,点击安装

3、下载WpdPack_4_1_2开发包


4、下载libnet-1.1.2.1源码


5、编译libnet,生成libnet.dll和libnet.lib文件
解压libnet-1.1.2.1,进入目录win32,用VC6.0打开libnet.dsw文件,
(1)在VC[工具]->[选项]->[目录]中分别添加sdkinclude路径和library路径:
C:\Program Files\Microsoft Platform SDK\Include
C:\Program Files\Microsoft Platform SDK\Lib
然后添加WpdPack的include路径和library路径:
E:\Downloads\windows数据包捕获\WpdPack_4_1_2\WpdPack\Include
E:\Downloads\windows数据包捕获\WpdPack_4_1_2\WpdPack\Lib
然后添加libnet的include路径:
E:\Downloads\windows数据包捕获\libnet-1.1.2.1\libnet\include


(2)在工程->设置->对象/库模块中写入advapi32.lib。执行编译,编译过程可能会提示一大堆error。
在文件E:\Downloads\windows数据包捕获\libnet-1.1.2.1\libnet\include\win32\in_systm.h中添加类型定义:

typedef char int8_t;
typedef short int16_t;
typedef int int32_t;

(3) 保存,继续编译,可能会提示某些库未找到,那么就在
E:\Downloads\windows数据包捕获\WpdPack_4_1_2\WpdPack\Lib
C:\Program Files\Microsoft Platform SDK\Lib
两个文件夹中找出来,复制到
C:\Program Files\Microsoft Visual Studio\VC98\Lib下面

(4)继续编译, 如果链接成功,在win32文件里出现Debug文件夹,打开该文件夹可以看见有libnet.dlllibnet.lib文件。
libnet.dll文件复制到系统目录下,(c:/WINDOWS/system32)。在VC[工程]->[设置]->[连接]->[对象/库模块]中加入libnet.lib

提示1:libnet开发程序时别忘了添加libnet.lib

提示2: 还要添加libnetlibrary路径:E:\Downloads\windows数据包捕获\libnet-1.1.2.1\libnet\win32\Debug(根据libnet安装位置灵活掌握)

提示3: 若要在程序中使用套接字,还须加#pragma comment(lib, "wsock32.lib")

提示4:如果编译libnet的自带例子,还要添加include路径:E:\Downloads\windows数据包捕获\libnet-1.1.2.1\libnet\sample

注:做程序开发时如果出现错误:“packet32.h(231) : error C2079: 'IPAddress' uses undefined struct 'sockaddr_storage'”,改错方法如下:

手工向winpcap库的packet32.h文件中加入如下代码,且应位于“struct npf_if_addr”定义之前:

#ifndef _SS_PAD1SIZE
struct sockaddr {
u_char sa_len;
u_char sa_family;
u_char padding[128];
};
#endif


资料来源于网络,参考文献:
1、Windows XP系统VC++6.0环境下安装libnet开发包
阅读(3994) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~