网络嗅探器设计(二)

  //系统和本机信息===>#include<sys/utsname.h>
  struct utsname  
  { 
       char sysname[_UTSNAME_SYSNAME_LENGTH];//当前操作系统名  
       char nodename[_UTSNAME_NODENAME_LENGTH];//网络上的名称  
       char release[_UTSNAME_RELEASE_LENGTH];//当前发布级别  
       char version[_UTSNAME_VERSION_LENGTH];//当前发布版本  
       char machine[_UTSNAME_MACHINE_LENGTH];//当前硬件体系类型  
  };

int getopt(int argc,char * const argv[ ],const char * optstring);
getopt()用来分析命令行参数。参数argc和argv是由main()传递的参数个数和内容。参数optstring 则代表欲处理的选项字符串。此函数会返回在argv中下一个的选项字母,此字母会对应参数optstring 中的字母。如果选项字符串里的字母后接着冒号“:”,则表示还有相关的参数,全域变量optarg 即会指向此额外参数。如果getopt()找不到符合的参数,则会打印出错信息,并将全域变量optarg设为“?”字符,如果不希望getopt()打印出错信息,则只要将全域变量opterr设为0即可。

流程:

基础信息:
//  
参数设定:
-h: ---help 
-i: ---打印本机info
-t: ---抓包数量
-f: ---设定过滤规则

开始捕获数据:

这里写图片描述

ARP报文是由以太网帧进行封装传输的。没有封装进IP包。实际上,对网络接口层的以太网帧来讲,它们同样是帧的上层协议,当收到以太帧时,根据帧的协议字段判断是送到ARP还是IP。
ICMP//TCP//UDP等由IP封装;

这里写图片描述

一、以太网封装格式:
目的地址6 + 源地址6 + 类型2  + 46~1500数据  + CRC校验4
偏移12 ==>  数据包类型

二、ARP(0806):地址解析协议
在TCP/IP协议簇中属于网络层

这里写图片描述

三、IP(0800)网际层协议
首部中:协议
ICMP(Internet Control Message Protocol)——网际控制报文协议——– 1 
IGMP(Internet Group Management Protocol)  ——网际组管理协议——-2 
TCP(Transmission Control Protocol )    ————–传输控制协议———- 6 
UDP(User Datagram Protocol)         ———————用户数据报协议——- 17

这里写图片描述

四、传输层协议
4.1 TCP==>传输控制协议

这里写图片描述

4.2 udp==>用户数据报协议

这里写图片描述

icmp协议分析信息:

这里写图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
—————————————————————— Hearen's SimpleSniffer —————————————————————— 一、功能简介: 1.针对同一局域网中的所有主机进行监听并返回处理优化后的数据供研究使用; 2.在数据表中显示了所有当前侦听到的数据包包括源IP、源端口、目的IP、目的端口、数据包协议类型、数据包捕获时间及数据包简略信息(仅应用层数据); 3.可以针对某一特定IP地址(源或目的),某特定端口(源或目的)以及特定类型数据包进行侦听 -- 捕获前过滤; 4.当数据过多时可以随时点击‘清理’对当前的数据表进行清空 -- 不过捕获的数据是不会被清除的,仅清除列表中显示的数据; 5.双击‘清理’时清空所有嗅探到的数据 -- 不仅仅是列表中显示的数据; 6.选择列表中的数据时,数据详细信息会显示在下方的面板中; 此时可以通过选择特定字符串来查看在其左侧的十六进制表示以供研究之用; 7.左下角会显示当前在该局域网中捕获到的数据包个数及总大小(该大小包含IP协议及其建立在该协议以上协议的头部)-- 数据单位会自动进行切换当数据大小达到2G时将重置清零; 8.在获取数据包后可以针对某一IP,PORT,IP:PORT或IP/PORT及协议进行筛选,同时可以查阅当前所有捕获的数据包(如果没有设置捕获前过滤,否则只能查阅过滤后的数据)。 、使用说明:本应用的使用环境为Windows 7、Windows 8及Windows 8.1。 在使用过程中需要获得管理员权限 - 捕获数据包需要访问底层数据,需要获得最高权限才可以正常运行该应用; 三、作者留言 该应用的开发环境为VS2013,所用语言为C#,界面设计属于WinForm(比较老式的界面风格,推荐使用WPF)。因本人水平有限,在该应用中不免存在很多漏洞和不足;如果你有更多更好的想法或者发现该小应用中的bug还望批评指正。 ||联系方式:LHearen@126.com|| 四、免责声明 本系统仅用于学习交流之用,本人不承担该应用的技术及版权问题,且不对该应用负法律责任。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值