如何才能截获以太网帧的以太网首部数据

tuqvb 2002-09-21 12:01:27
要软件方式实现哦...
...全文
315 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
tuqvb 2002-09-24
  • 打赏
  • 举报
回复
太不幸了
tuqvb 2002-09-24
  • 打赏
  • 举报
回复
我这里对国外是封锁了的
2ndboy 2002-09-24
  • 打赏
  • 举报
回复
有谁知道 Winpcap 发的包只是 IP 包还是带有 MAC 头?
2ndboy 2002-09-24
  • 打赏
  • 举报
回复
去官方网站下载啊,上面不是有人贴了吗?
XDT 2002-09-24
  • 打赏
  • 举报
回复
好象Winpcap也是只能工作在NDIS下吧。。。。。
tuqvb 2002-09-24
  • 打赏
  • 举报
回复
哪里能弄到Winpcap的SDK啊,拜托大家乐
2ndboy 2002-09-24
  • 打赏
  • 举报
回复
to azlza(微笑)

这么说 Winpcap 可以发包了!那它发的包只是 IP 包还是带有 MAC 头?
cai3995 2002-09-24
  • 打赏
  • 举报
回复
NDIS不是网卡驱动,它工作在NIC之上,只能算是非常底层的技术。

nids hook技术很不错,你可以到www.pcausa.com看看
这个公司做的非常好
azlza 2002-09-24
  • 打赏
  • 举报
回复
少来,我用winpcap做过PPPoE server。怎么只能截包呢。winpcap收发包都可以。我想性能应该在NDIS之上,NDIS应该是驱动之上的东西吧?所以不用搞什么网卡驱动
bigbigtree 2002-09-24
  • 打赏
  • 举报
回复
winpcap只是个截包程序,如果想要发包,可以使用ndis的IMD层开发接口,用DDK进行开发,或者用driverstudio,在链路层,sniffer就是用这个实现的!不过这个接口的安装不太好办,要到MS去做认证,不然会pop一大堆的数学签名窗口,很烦!
还有一种技术叫ndis hook,是hook出ndis的一些函数,然后做成服务的形式,这是一种MS不recommonded的方式!

你可以到driverdevelop.com上看看,ndis开发接口!
tuqvb 2002-09-23
  • 打赏
  • 举报
回复
http://codeguru.earthweb.com/network/ipmon.html连不上,能不能发给我呢?
tuqbasic@sohu.com
紫郢剑侠 2002-09-23
  • 打赏
  • 举报
回复
GZ

UP
kingzai 2002-09-23
  • 打赏
  • 举报
回复
you can use winpcap or raw socket.there is an example in codeguru.
http://codeguru.earthweb.com/network/ipmon.html
oldworm 2002-09-23
  • 打赏
  • 举报
回复
WinPcap is an architecture for packet capture and network analysis for the Win32 platforms. It includes a kernel-level packet filter, a low-level dynamic link library (packet.dll), and a high-level and system-independent library (wpcap.dll, based on libpcap version 0.6.2).

winpcap主页:
winpcap.polito.it
tuqvb 2002-09-23
  • 打赏
  • 举报
回复
呜呼,我不知道WinpCap是什么东西.
哪位高手能说一下么?
2ndboy 2002-09-21
  • 打赏
  • 举报
回复
WinPcap应该也可以,但是它能发包吗?我想知道
zhaoweidf 2002-09-21
  • 打赏
  • 举报
回复
...发完了呵呵
zhaoweidf 2002-09-21
  • 打赏
  • 举报
回复
WinPcap 2.3

可以
oldworm 2002-09-21
  • 打赏
  • 举报
回复
最简单的方式是用winpcap

首部是这样定义的(等等,去找我的老程序)

/******************************************
该文件中的结构都是从linux操作系统原代码
中拷贝出来并整理的,一些定义可能作了一
些修改。

袁斌/oldworm/oldworm@21cn.com
******************************************/

typedef struct eth_address
{
uchar ether_addr[6];
}eth_address;


typedef struct ethhdr
{
uchar ether_dhost[6]; //目标MAC地址
uchar ether_shost[6]; //原始MAC地址
ushort ether_type; //以太帧类型
}ethhdr;


/* Ethernet protocol ID's */
#define ETHERTYPE_PUP 0x0002 /* Xerox PUP */
#define ETHERTYPE_IP 0x0008 /* IP */
#define ETHERTYPE_ARP 0x0608 /* Address resolution */
#define ETHERTYPE_REVARP 0x3580 /* Reverse ARP */


typedef struct iphdr
{
unsigned char version:4; //version
unsigned char ihl:4; //ip header length
uchar tos; //type of service
ushort tot_len; //total length
ushort id; //identification
ushort frag_off; //fragment offset
uchar ttl; //time to live
uchar protocol; //protocol type
ushort check; //check sum
uint saddr; //source address
uint daddr; //destination address
}iphdr;


//fragment flag define.
#define IP_RF 0x8000 /* reserved fragment flag */
#define IP_DF 0x4000 /* dont fragment flag */
#define IP_MF 0x2000 /* more fragments flag */
#define IP_OFFMASK 0x1fff /* mask for fragmenting bits */

#define IPVERSION 4 /* IP version number */
#define IP_MAXPACKET 65535 /* maximum packet size */


//---tcp---------------------------------------------------------
typedef uint tcp_seq;
/*
* TCP header.
* Per RFC 793, September, 1981.
*/
typedef struct tcphdr
{
ushort th_sport; /* source port */
ushort th_dport; /* destination port */
tcp_seq th_seq; /* sequence number */
tcp_seq th_ack; /* acknowledgement number */
uchar th_off:4; /* data offset */
uchar th_x2:4; /* (unused) */
uchar th_flags;
ushort th_win; /* window */
ushort th_sum; /* checksum */
ushort th_urp; /* urgent pointer */
}tcphdr;


//th_flags define.
# define TH_FIN 0x01
# define TH_SYN 0x02
# define TH_RST 0x04
# define TH_PUSH 0x08
# define TH_ACK 0x10
# define TH_URG 0x20


typedef struct PACKETHEAD
{
ethhdr eth;
iphdr ip;
tcphdr tcp;
}PACKETHEAD;


typedef struct TCPPACKET
{
PACKETHEAD *h;
char *pdata;
int datalen;
}TCPPACKET;


孙亖 2002-09-21
  • 打赏
  • 举报
回复
up
加载更多回复(4)
关于pcap截取的网卡数据的分析;一个Demo说明网络协议封分层以及具体截获的包分析说明 一个实际的包数据分析 packet_header ------>包的头部---16字节 --------packet_content start--------- 52 54 00 12 35 02 08 00 27 73 a8 bf 08 00 ------>以太网头部---14字节 45 00 00 29 77 51 40 00 40 06 00 00 0a 00 02 0f 8c cd da 0e ------>IP协议头部---20字节 6f 2c 01 bb 7d 3d c8 c1 00 db 9e 72 50 10 f5 b0 73 06 00 00 ------>TCP协议头部--20字节 00 --------packet_content stop---------- ************************************************** 捕获第1个网络数据包 捕获时间:09:54:38.69 数据包长度:55 <---->此为package_header中的数据内容,55为package_content的长度 -------- 以太网协议 -------- 类型:0800 <---->以太网头部的最后两个字段:0800表示IP协议 上层协议为IP协议 源以太网地址 :08:00:27:73:a8:bf <---->有一个是本地的mac地址 目的以太网地址:52:54:00:12:35:02 <---->有一个是本地的mac地址 ----------- IP协议 ----------- 版本号:4 首部长度:20 服务质量:0 总长度:41 标识:30545 偏移:0 生存时间:64 协议类型:6 上层协议为TCP协议 校验和:0 源IP地址:10.0.2.15 目的IP地址:140.205.218.14 ------- TCP协议 ------- 源端口号:28460 目的端口号:443 序列码:2101201089 确认号:14392946 首部长度:20 保留:0 标记:ACK 窗口大小:62896 校验和:29446 紧急指针:0 **************************************************

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧