如何捕获以太网数据包 ?(200分)

  • 主题发起人 meckyhan
  • 开始时间
ipx?tcp/ip?
 
如果你仅仅是想捕获数据包,办法还是有的,要是你想
自己编程捕获,我就不会了。在LINUX下有SNIFFER程序
可以捕获,不但是你自己的,而且同一广播网段的其它
计算机的包也可以监听。这个程序在redhat5.0以上的LINUX
中有。还有一个在95,98,NT下的,叫netxray,大概意思
是网络X光,可以监听同一广播网段的其它计算机的包,它
具有自动协议分析 组包能力,可以把捕获的以太网包按照
包头信息恢复为更高层对应协议的数据包,并能获得其中
的数据。而且它的过滤能力很强,我可以分别设定监听某个或
某些IP或MAC(网卡地址)流入、流出、具体协议的包,比如
我可以做到:监听192.168.0.1计算机上接受所有TELNET协议的数据包,或者监听192.168.0.1计算机上接受192.168.0.2
的FTP请求的数据包(当然用户名和密码就在其中了)。
这个软件可以到以下地址当到:
ftp://202.119.112.52/pub/network/others/netxray.zip
 
如果用IPMAN,NT下不行,怎么办???
 
我是想知道捕获的原理是什么 ?
 
在以太网上,数据包是广播发送的。
在一般情况下,网卡只接收发给自己的报文,而不管其它的报文。
但你可以对网卡进行设置,让它接收网络上所有的报文,无论它是否
发往本站。
具体实现方法是在报文接收前,修改网卡的接收结构寄存器(RCR),
将它的第4位改为接收所有报文。
 
如何用程序修改呢
 
嵌汇编。
具体的网络接口控制器(NIC)芯片中各寄存器地址及使用说明可以查参考书。
const RCR=IOBase+0x0c
outportb(RCR,0x1e);
RCR寄存器的值决定NIC接收一个包时的具体操作。
7 6 5 4 3 2 1 0
- - MON PRO AM AB AR SEP

位 符号 说明
D0 SEP 0:不保留出错包 1:保留出错包
D1 AR 0:不接收短包(小于64字节) 1:接收短包
D2 AB 0:不接收广播报文 1:接收广播报文
D3 AM 0:不接收多组地址包 1:接收多组地址包
D4 PRO 0: 只接收发给本站的包 1:接收网络上所有的包
D5 MON 0:一般操作 1:对包进行校验,但不送入缓冲区
D6 保留
D7 保留
 
appcat:
我不在教育网上,ftp受不了。能不能帮我当一个,
email locust@yeah.net
多谢。
tongle
你这些网络接口控制器(NIC)芯片中各寄存器地址及使用说明可以查参考书。
那里有?
 
kaka:
Netxray3.0的压缩包有7M多,你的邮箱会不会爆了,还是
先确认一下吧,要不然好事干成坏事了。
 
appcat:
No problem,
i apply an email locust@777.net.cn
which contain 8M space.
那就要烦你啦!
thanks a lot
 
另烦请问下,1、netxray.zip在Windows环境下可否用?
2、To tongle: NE2000网卡是否也是如此操作?还是针对某个特定的
环境?
 
兄弟们, 哪里有其它得下载点? netxray.zip?
 
湖南软件库
 
有没有专门的API来获取数据包?比如在VB,DELPHI下就可以获取?
最好是可以用在WINNT下,谢谢
 
tongle:
可否送上一段delphi 原码
 
appcat:
我有Netxray,可不大会用,能否简单介绍一下。
 
哪里有正式版的netxray? 或者有delphi可以实现的例子/vcl???(有加分)
 
cytwon: "正式版的netxray"是什么意思? 有什么不同吗?

况且,这个东西我觉得没什么用,只能用于同一网段.
 
顶部