资源简介
简单的网络嗅探器
Linux 下的socket 编程的实践
libnet libcap 的应用
附简单的项目文档
代码片段和文件信息
/*
* arp.c
*
* Created on: 2009-7-7
* Author: lele
*
* 处理ARP请求
* Hardware type Protocol type
Hardware address length Protocol address length Opcode
Source hardware address :::
Source protocol address :::
Destination hardware address :::
Destination protocol address :::
Data :::
*
*/
#include “sniffer.h“
void handle_arp (const u_char* packet)
{
//ARP 头
struct nast_arp_hdr *arp;
struct libnet_ethernet_hdr *eptr;
u_short ether_type;
eptr = (struct libnet_ethernet_hdr *) packet;
arp = (struct nast_arp_hdr *) (packet+offset);
ether_type = ntohs(eptr->ether_type);
if (ether_type == ETHERTYPE_ARP)
{
fprintf(logfile “\n---[ ARP ]-----------------------------------------------------------\n“);
fprintf(logfile “%s -> “ nast_hex_ntoa (eptr->ether_shost));
fprintf(logfile “%s\n“ nast_hex_ntoa (eptr->ether_dhost));
switch (ntohs(arp->ar_op))
{
case 1:
{
fprintf(logfile “类型: ARP 请求: “);
fprintf(logfile “Who has %d.%d.%d.%d? “arp->__ar_tip[0]arp->__ar_tip[1]arp->__ar_tip[2]arp->__ar_tip[3]);
fprintf(logfile “Tell %d.%d.%d.%d\n“arp->__ar_sip[0]arp->__ar_sip[1]arp->__ar_sip[2]arp->__ar_sip[3]);
}
break;
case 2:
{
fprintf(logfile “类型: ARP 应答: “);
fprintf(logfile “%d.%d.%d.%d is at %s\n“arp->__ar_sip[0]arp->__ar_sip[1]arp->__ar_sip[2]arp->__ar_sip[3] nast_hex_ntoa (eptr->ether_shost));
}
break;
case 8:
fprintf(logfile “类型: InARP 请求“);
break;
case 9:
fprintf(logfile “类型: InARP 应答\t“);
break;
default:
fprintf(logfile “类型: 未知操作符“);
break;
}
fprintf(logfile “硬件大小: %d - “ arp->ar_hln);
fprintf(logfile “协议大小: %d\n“ arp->ar_pln);
}
else if (eptr->ether_type == ETHERTYPE_REVARP)
{
fprintf(logfile “\n---[ RARP ]----------------------------------------------------------\n“);
fprintf(logfile “%s -> “ nast_hex_ntoa (eptr->ether_shost));
fprintf(logfile “%s\n“ nast_hex_ntoa (eptr->ether_dhost));
switch (ntohs(arp->ar_op))
{
case 3:
fprintf(logfile “类型: RARP 请求“);
break;
case 4:
fprintf(logfile “类型: RARP 应答\t“);
break;
case 8:
fprintf(logfile “类型: InARP 请求“);
break;
case 9:
fprintf(logfile “类型: InARP 应答\t“);
break;
default:
fprintf(logfile “类型: 未知操作符“);
break;
}
fprintf(logfile “\t硬件大小: %d - “arp->ar_hln);
fprintf(logfile “协议大小: %d\n“arp->ar_pln);
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 615705 2009-10-04 17:03 项目报告1.pdf
文件 2680 2009-07-08 13:42 src\arp.c
文件 2462 2009-07-08 13:42 src\common.c
文件 800 2009-07-08 13:24 src\device.c
文件 918 2009-07-07 21:15 src\ethernet.c
文件 4977 2009-07-08 15:05 src\find_gateway.c
文件 7581 2009-07-08 13:02 src\icmp.c
文件 1965 2009-07-07 22:16 src\igmp.c
文件 3730 2009-07-08 15:06 src\main.c
文件 112 2009-07-08 20:43 src\makefile
文件 7828 2009-07-08 13:17 src\port.c
文件 38158 2009-07-08 22:38 src\sniffer
文件 4052 2009-07-08 12:56 src\sniffer.c
文件 2611 2009-07-08 14:28 src\sniffer.h
文件 3776 2009-07-07 22:20 src\tcp.c
文件 1834 2009-07-07 22:22 src\udp.c
目录 0 2009-08-09 14:35 src
----------- --------- ---------- ----- ----
699189 17
- 上一篇:自己收藏的7个奖状模板
- 下一篇:LaTex报告封面样式-1
相关资源
- linux内核 0.11版本源码 带中文注释
- cudnn-11.1-linux-x64-v8.0.4.30.tgzab
- Linux C程序设计王者归来_book_cd.7z.004
- 鸟哥的Linux私房菜:服务器架设篇第
- 《Linux-UNIX系统编程手册 上、下册 全
- linux学习资料(收集了很久)
- 程序的链接和装入
- 实验四:实现一个unix命令解释程序代
-
gsnap.tar.gz linux从fr
amebuffer获取image源 - i2c_ioctl详解
- Linux网络编程超级详细笔记
- linux tftp rpm软件包
- libssl-dev库
- 基于video4linux2的双usb摄像头图像获取
- linux网络编程教学视频
- Linux下聊天系统
- linux压力测试工具stress
- 国密SM4算法ECB CBC源码及demoLinux C版
- linux基础教程.pdf
- LINUX下传输文件源码
- 基于Linux的消息队列及多线程编程实现
- Linux操作系统实验教程源码.zip
- linux 0.11 bochs2.6.9配置文件
- socketcan提供的linux下的CAN网络工具包
- linux udev源代码
- libv4l-0.6.2-test.tar.gz
- makefile的详细说明文档
- 利用信号进行进程间通信
- Linux中的网络数据包捕获
- 基于QT+Linux的网络聊天室
评论
共有 条评论