libnet下有关LIBNET_LINK和LIBNET_RAW4选项的、发送数据包成功但wireshark捕获不到的问题

1、问题描述:

    在l=libnet(LIBNET_LINK,NULL,errbuf)是返回的l不等于NULL;而l=libnet(LIBNET_RAW4,NULL,errbuf)时返回的是NULL,且提示初始化失败

原因:

    libnet里面提供了两个类型的初始化,一个是链路层的LIBNET_LINK,一个是网络接口层的LIBNET_RAW4,在初始化函数libnet_init()中,如果用LIBNET_LINK这个接口类型其中会调用了一个libnet_select_device(l) 的函数来得到网络设备,而在LIBNET_RAW4中会调用一个PacketOpenAdapter(l->device)的函数来打开网络设备,因为我的机子网卡有两个所以会出现找不到网络设备,因为它是采用默认的第一个网络设备来完成这个调用的,所以不是当前正确使用的网卡,返回失败。

2、问题描述:

   用网络安全开发包详解中的教程中的sample的tcp1.exe发送数据包,显示的是发送成功,但是用wireshark确捕获不到这个数据包。

   原因:可用在代码中,采用系统中的第一块网卡去发送数据包,而第一块网卡不是你的当前网卡,或者是没有在工作。我由于以前装过虚拟机,所以代码就会用我的虚拟网卡去捕获数据包,当我把虚拟网卡禁用掉之后,就可以用wireshark抓到数据包啦!也可以再代码中,不去用系统默认的网卡,自己系统用以太网卡!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值