社区
通信技术
帖子详情
为什么WinPcap不能捕获外部的数据?
inwindcn
2003-09-12 05:37:09
局域内部的电脑ping我的电脑时,我监听自己的局域ip 192.168.1.x
可以截获数据包。
公司上网是ADSL拨号上网,每台电脑自己拨号上。
我监听用ipconfig得到的外部的ip是 61.x.x.x, 掩码255.255.255.255
可是就没有办法截获任何数据包。
谁能告诉我原因。。
...全文
126
16
打赏
收藏
为什么WinPcap不能捕获外部的数据?
局域内部的电脑ping我的电脑时,我监听自己的局域ip 192.168.1.x 可以截获数据包。 公司上网是ADSL拨号上网,每台电脑自己拨号上。 我监听用ipconfig得到的外部的ip是 61.x.x.x, 掩码255.255.255.255 可是就没有办法截获任何数据包。 谁能告诉我原因。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
visualabc
2003-09-23
打赏
举报
回复
可监控整个网络的包,IP包、非IP包
inwindcn
2003-09-20
打赏
举报
回复
我就一块网卡呀
kingzai
2003-09-19
打赏
举报
回复
你的机器有几块物理网卡?如果要用与拨号的话应该是两块,一块是内网,一块用于拨号,按道理绑定用与拨号那块网卡就可以监控到数据。
inwindcn
2003-09-19
打赏
举报
回复
大家可不可以继续关心一下呢????
inwindcn
2003-09-17
打赏
举报
回复
谢谢 kingzai(kingzai) 的关注,testapp也只发现一个设备,也就是本地的那个。
windbells(风铃)可以说的详细一点吗?
这方面我不大熟悉,有没有相关的参考书籍或者资料什么的。
windbells
2003-09-16
打赏
举报
回复
拨号后发出的数据包都是pppoe协议的包,对应的以太网桢类型,其中session包是8864,discovery包是8863,用winpcap可以监听到。
kingzai
2003-09-16
打赏
举报
回复
正确的应该是绑定PPP adapter,winpcap有两个例子有附带绑定网卡,有一个是testapp,你可以查看一下,如果他们也不能找到,证明是别的问题
inwindcn
2003-09-16
打赏
举报
回复
谢谢大家关心这个话题。
不过似乎大家没有完全明白我的问题,,
// Retrieve the device list
if (pcap_findalldevs(alldevs, errbuf) == -1)
这是winpcap的代码,可以获得本机的所有设备列表,可是在win2000运行过后,
这个列表只有1,也就是只发现一个设备
\Device\NPF_{XXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX}
Description: NDIS 5.0 driver
Loopback: no
Address Family: #2
Address Family Name: AF_INET
Address: 192.168.1.12
Netmask: 255.255.255.0
Broadcast Address: 255.255.255.255
可是用ipconfig,可以发现两个
C:\>ipconfig
Windows 2000 IP Configuration
Ethernet adapter 本地连接:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 192.168.1.12
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :
PPP adapter Connection through Realtek RTL8139(A) PCI Fast Ethernet Adapter:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : xx.xxx.xxx.xxx
Subnet Mask . . . . . . . . . . . : 255.255.255.255
Default Gateway . . . . . . . . . : xx.xxx.xxx.xxx
我想知道为什么??是我什么地方没有注意,,
请大家继续讨论。。。。。。。。。。。谢谢
kingzai
2003-09-15
打赏
举报
回复
你要绑定正确的网卡才能截获到相应的数据包,你不妨找个sniffer工具先看一下。
kingzai
2003-09-15
打赏
举报
回复
你要绑定正确的网卡才能截获到相应的数据包,你不妨找个sniffer工具先看一下。
inwindcn
2003-09-15
打赏
举报
回复
但拨号后别人的包是不可能到达你的节点,但你能捕获到自己从Internet上访问到所有信息.
这点我也认为是这样。
但现在问题是:我用别人的电脑ping我的internet的IP 61.x.x.x ,一点信息也没有收到。
而且我访问internet时也没有截获任何信息。
用ipconfig可以发现两个设备,一个本地连接,还有一个是ppp adapter....
可是用winpcap编程实现时,只发现一个设备(win2000),是局域网的ip.
记得前一阵时间用win98时,好像发现了两个设备,不过当然没有注意到这个问题。。
我觉得应该得要找那个设备,监听,才能截获到数据,,,,
希望大家继续给我帮助。。。。
谢谢
netsys2
2003-09-15
打赏
举报
回复
的确是需要绑定指定的设备才能截获包,
你可以查考一下在WIN2000下的GUNIFFER。
下面是代码和EXE
http://asp.6to23.com/nowcan/code/guniffer.zip。
我一般用修改后的GUNIFFER,自己动手改更有趣。
在GUNIFFER代码中也没有指定网络适配器的功能,但可以简单地增加:
下面是我改过的代码
// 初始化SOCKET
iErrorCode = WSAStartup(MAKEWORD(2,1),&wsaData);
if( iErrorCode )
{
CheckSockError(iErrorCode, "WSAStartup");
return false;
}
// 获取本机名称
char FAR name[MAX_HOSTNAME_LAN];
iErrorCode = gethostname(name, MAX_HOSTNAME_LAN);
if( iErrorCode )
{
CheckSockError(iErrorCode, "gethostname");
return false;
}
// 利用得到的主机名去获得主机结构
LPHOSTENT lpHostEnt;
struct in_addr AdpAddr[30]; // 网络参数
lpHostEnt = gethostbyname(name);
// 从主机地址表中得到AdpAddr
for (int i=0; i<30; i++)
{
if( !lpHostEnt->h_addr_list[i] )
break;
memcpy(&AdpAddr[i],lpHostEnt->h_addr_list[i],sizeof(in_addr));
}
..............................
//创建原生的SOCKET
SockRaw = socket(AF_INET , SOCK_RAW , IPPROTO_IP);
if( SockRaw == INVALID_SOCKET )
{
CheckSockError(iErrorCode, "Create Socket");
return false;
}
// 绑定一块网卡
SOCKADDR_IN sa;
sa.sin_family = AF_INET;
sa.sin_port = htons(6000);
memcpy(&sa.sin_addr.S_un.S_addr,&AdpAddr[adpaterIndex],sizeof(in_addr));
// ^选择一块
iErrorCode = bind(SockRaw, (PSOCKADDR)&sa, sizeof(sa));
if( iErrorCode )
return false;
zhhuang2002
2003-09-14
打赏
举报
回复
因为局域网内数据包会到达各个节点,如果杂收就都能收到,但拨号后别人的包是不可能到达你的节点,但你能捕获到自己从Internet上访问到所有信息.
BCBChina
2003-09-13
打赏
举报
回复
不会,关注
kingzai
2003-09-13
打赏
举报
回复
yes, winpcap can sniffer LAN data,but can't sniffer dialuping data.
cwanter
2003-09-12
打赏
举报
回复
winpcap只能截获网卡上的数据包~
Win
Pcap
+中文技术文档
Win
Pcap
用户指南 定义 输出函数 过滤串表达式的语法 使用
Win
Pcap
编程
Win
Pcap
教程: 循序渐进教您... 对于提供远程
捕获
的函数引用, 请参阅
Win
Pcap
输出函数 章节的 "
Win
dows-specific Extensions" . 核心
数据
结构与定义
循序渐进学习使用
WIN
PCAP
(四.rar_
win
pcap
WIN
PCAP
,全称为
Win
dows Packet Capture,是一款在
Win
dows操作系统上广泛使用的开源网络
数据
包
捕获
和网络分析工具。它是网络监控、安全检测以及网络开发等领域不可或缺的软件库,提供底层网络访问能力。本教程将深入...
易语言调用
win
cap实现网卡抓包
2. **创建
外部
函数声明**:在易语言中,我们需要为每个
Win
Pcap
的C函数创建对应的
外部
函数声明。例如,对于`
pcap
_open_live()`,我们需要声明其参数类型和返回值类型,如: ```
外部
函数 指针型
pcap
_open_live...
易语言源码易语言
Win
Pcap
操作源码.rar
易语言是一种专为中国人设计的编程语言,它以简化的汉字作为编程语句,降低了编程的门槛,使得非计算机专业背景的用户也能快速上手。
Win
Pcap
则是网络
数据
包
捕获
和网络分析的重要库,它允许程序直接访问网络接口层,...
arp_search_host.rar_
win
pcap
arp_局域网搜索
8. **参考资料**: "5 参考资料 .doc" 可能提供了更多关于 ARP、
Win
PCap
开发和局域网搜索技术的
外部
资源,以便深入学习和研究。 9. **源代码**:项目中包含的 "工程源码" 文件可能是使用 C 或 C++ 编写的,展示了...
通信技术
4,390
社区成员
28,906
社区内容
发帖
与我相关
我的任务
通信技术
通信技术相关讨论
复制链接
扫一扫
分享
社区描述
通信技术相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章