新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   >>中国XML论坛<<     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 讨论密码学、密码协议、入侵检测、访问控制等与安全理论研究有关的主题
    [返回] 中文XML论坛 - 专业的XML技术讨论区计算机理论与工程『 安全理论 』 → [原创]Winpcap学习第一天 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 26132 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: [原创]Winpcap学习第一天 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     binaryluo 帅哥哟,离线,有人找我吗?
      
      
      威望:6
      等级:研二(Pi-Calculus看得一头雾水)(版主)
      文章:679
      积分:5543
      门派:IEEE.ORG.CN
      注册:2005/2/19

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给binaryluo发送一个短消息 把binaryluo加入好友 查看binaryluo的个人资料 搜索binaryluo在『 安全理论 』的所有贴子 引用回复这个贴子 回复这个贴子 查看binaryluo的博客楼主
    发贴心情 [原创]Winpcap学习第一天

    说明:本系列文章是我阅读winpcap手册后整理的一个学习笔记。文章中出现的所有代码是我根据winpcap手册中的示例代码进行了学习,并调试通过,其中对部分代码作了修改,关于代码的版权我尊重winpcap手册中的版权说明,如果你使用了本系列文章中的代码而引起任何的版权或造成安全威胁等问题,我将不负任何责任。
     
           下载好了WpdPack_3_2_alpha1.zip(下载地址:http://www.winpcap.org/install/bin/WpdPack_3_2_alpha1.zip),解压后除了有文档,例子外还有Include和lib,于是想用TC2来做开发环境,但是编译的时候老是出问题,于是放弃。后来阅读了Winpcap手册后才知道因为是在windows上开发,所以它推荐用VC++6.0,于是改用VC。

        第一个试验是:

    #include <pcap.h>
    #include <remote-ext.h>

    int main() {
    pcap_if_t *alldevs;
    pcap_if_t *d;
    int i = 0;
    char errbuf[PCAP_ERRBUF_SIZE];

    /* Retrieve the device list from the local machine*/
    if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL /* auth is not needed */, &alldevs, errbuf) == -1)
    {
      printf("Error in pcap_findalldevs_ex: %s\n", errbuf);
      exit(1);
    }

    /* Print the list */
    for (d = alldevs; d != NULL; d = d->next)
    {
      /* Print the device's name */
      printf("%d. %s", ++ i, d->name);

      /* Print the device's dscription */
      if (d->description)
      {
       printf("(%s)\n", d->description);
      }
      else
      {
       printf("(No description available)\n");
      }
    }

    if (i == 0)
    {
      printf("\nNo interfaces found! Make sure WinPcap is installed.\n");
      return 0;
    }

    /* We don't need any more the device list. Free it */
    pcap_freealldevs(alldevs);

    return 1;
    }

           编译的时候又遇到问题——“无法打开pcap.h”。又查看开发手册才找到解决方法:

    1.安装Winpcap驱动。下载地址:http://www.winpcap.org/install/bin/WinPcap_3_1.exe。

    2.将Winpcap的Include,Lib目录添加进VC6.0的环境变量中;

    3. 针对每一个项目,先用VC打开项目,然后在"Project->Settings",标签栏出选择"C/C++",在"Preprocessor definitions"的输入框里添加"WPCAP",再选择"Link",在"Object/library modules"的输入框里添加"wpcap.lib Packet.lib"。

           再编译时终于OK了。之后,阅读代码并查看开发手册学到了下面的东西:

    pcap_if是一个结构体,具体点它是一个链表的结点,他的定义如下:

    struct pcap_if {

    struct pcap_if *next;

    char *name;

    char *description;

    struct pcap_addr *addresses;

    u_int flags;

    }

        另外,在pcap.h中有一句“typedef struct pcap_if pcap_if_t;”,所以也可以用pcap_if_t代替pcap_if。

    int pcap_findalldevs_ex(char * source,

    struct pcap_rmtauth * auth,

    pcap_if_t ** alldevs,

    char * errbuf

    )

        这个函数是’pcap_findalldevs()’的一个超集。’pcap_findalldevs()’比较老,他只允许列出本地机器上的设备。然而,’pcap_findalldevs_ex()’除了可以列出本地及其上的设备,还可以列出远程机器上的设备。此外,它还能列出所有可用的pcap文件到指定的文件夹。’pcap_findalldevs_ex()’是平台无关的,然而它以来于标准的’pcap_findalldevs()’来获得本地机器的地址。


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/6/1 9:32:00
     
     jjjjkk 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:0
      积分:59
      门派:XML.ORG.CN
      注册:2006/5/7

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给jjjjkk发送一个短消息 把jjjjkk加入好友 查看jjjjkk的个人资料 搜索jjjjkk在『 安全理论 』的所有贴子 引用回复这个贴子 回复这个贴子 查看jjjjkk的博客2
    发贴心情 
    thanks for sharing
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/6/5 22:34:00
     
     hiyizhiyu 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:1
      积分:58
      门派:XML.ORG.CN
      注册:2006/7/6

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给hiyizhiyu发送一个短消息 把hiyizhiyu加入好友 查看hiyizhiyu的个人资料 搜索hiyizhiyu在『 安全理论 』的所有贴子 引用回复这个贴子 回复这个贴子 查看hiyizhiyu的博客3
    发贴心情 
    谢谢搂主分享
    我是刚刚开始学习使用winpcap
    在网上down的源码在6.0总编译总是出错
    所以想先学习楼主的代码
    但我在装6.0的时候没有注册环境变量
    那应该怎么添加winpcap的include和lib目录呢
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/7/6 16:00:00
     
     hiyizhiyu 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:1
      积分:58
      门派:XML.ORG.CN
      注册:2006/7/6

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给hiyizhiyu发送一个短消息 把hiyizhiyu加入好友 查看hiyizhiyu的个人资料 搜索hiyizhiyu在『 安全理论 』的所有贴子 引用回复这个贴子 回复这个贴子 查看hiyizhiyu的博客4
    发贴心情 
    现在知道了
    在tools->option->directories里面可以设置
    现在就从第一天学习起
    不知道楼主能不能留个MSN或者EMAIL
    有什么问题就可以向你请教
    谢谢
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/7/6 18:17:00
     
     binaryluo 帅哥哟,离线,有人找我吗?
      
      
      威望:6
      等级:研二(Pi-Calculus看得一头雾水)(版主)
      文章:679
      积分:5543
      门派:IEEE.ORG.CN
      注册:2005/2/19

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给binaryluo发送一个短消息 把binaryluo加入好友 查看binaryluo的个人资料 搜索binaryluo在『 安全理论 』的所有贴子 引用回复这个贴子 回复这个贴子 查看binaryluo的博客5
    发贴心情 
    以下是引用hiyizhiyu在2006-7-6 18:17:00的发言:
    现在知道了
    在tools->option->directories里面可以设置
    现在就从第一天学习起
    不知道楼主能不能留个MSN或者EMAIL
    有什么问题就可以向你请教
    谢谢

    我的邮箱:binaryluo@gmail.com

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/7/7 14:26:00
     
     netsay 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:2
      积分:68
      门派:XML.ORG.CN
      注册:2005/7/27

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给netsay发送一个短消息 把netsay加入好友 查看netsay的个人资料 搜索netsay在『 安全理论 』的所有贴子 引用回复这个贴子 回复这个贴子 查看netsay的博客6
    发贴心情 
    This can only be used in VC++ ,and can not use MinGW.
    pcap_findalldevs_ex function is not supported by MingGW c
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/7/27 13:10:00
     
     feifei805 美女呀,离线,快来找我吧!
      
      
      等级:大一新生
      文章:4
      积分:89
      门派:XML.ORG.CN
      注册:2006/9/13

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给feifei805发送一个短消息 把feifei805加入好友 查看feifei805的个人资料 搜索feifei805在『 安全理论 』的所有贴子 引用回复这个贴子 回复这个贴子 查看feifei805的博客7
    发贴心情 
    楼主,我编成没学好
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/9/13 10:33:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 安全理论 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/11/23 1:59:21

    本主题贴数7,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    125.000ms