ITPub博客

首页 > Linux操作系统 > Linux操作系统 > TCP/IP 抓包 流量监听 SOCK_RAW

TCP/IP 抓包 流量监听 SOCK_RAW

原创 Linux操作系统 作者:ForTechnology 时间:2011-08-06 10:30:32 0 删除 编辑
研究一下网上的相关文章自己又实践了下,走了一些歪路,不过最终在xp下可以用
环境:VC6.0 ,XP系统
关键步骤:
1.设置Socket:socket(AF_INET,SOCK_RAW,IPPROTO_IP)
2.bind(...)地址为本机地址,端口随便,协议簇:AF_INET
3.设置抓取的协议类型:
  可以用  ioctlsocket(sock,SIO_RCVALL, &dwLen);
  或者 WSAIoctl( sock, SIO_RCVALL ,......)可能会出现 SIO_RCVALL未定义
加人如下代码在头文件中:
//  Copyright (C) Microsoft Corporation, 1996-1999
#if _MSC_VER > 1000
#pragma once
#endif

/* Argument structure for SIO_KEEPALIVE_VALS */

struct tcp_keepalive {
    u_long  onoff;
    u_long  keepalivetime;
    u_long  keepaliveinterval;
};

// New WSAIoctl Options

#define SIO_RCVALL            _WSAIOW(IOC_VENDOR,1)
#define SIO_RCVALL_MCAST      _WSAIOW(IOC_VENDOR,2)
#define SIO_RCVALL_IGMPMCAST  _WSAIOW(IOC_VENDOR,3)
#define SIO_KEEPALIVE_VALS    _WSAIOW(IOC_VENDOR,4)
#define SIO_ABSORB_RTRALERT   _WSAIOW(IOC_VENDOR,5)
#define SIO_UCAST_IF          _WSAIOW(IOC_VENDOR,6)
#define SIO_LIMIT_BROADCASTS  _WSAIOW(IOC_VENDOR,7)
#define SIO_INDEX_BIND        _WSAIOW(IOC_VENDOR,8)
#define SIO_INDEX_MCASTIF     _WSAIOW(IOC_VENDOR,9)
#define SIO_INDEX_ADD_MCAST   _WSAIOW(IOC_VENDOR,10)
#define SIO_INDEX_DEL_MCAST   _WSAIOW(IOC_VENDOR,11)
4.接受用recv就ok了
5.其他的就是IP包分析了,定义不同的协议头,分析就行了。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25897606/viewspace-704312/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-07-21

  • 博文量
    220
  • 访问量
    662456