资源简介
本源码包含了在阅读和分析源码过程中添加的大量的注释。与本源码同时发布的是《iputils网络工具源码分析》系列文章,可在http://blog.csdn.net/fsdev中找到。
代码片段和文件信息
/*
* arping.c
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License or (at your option) any later version.
*
* Authors: Alexey Kuznetsov
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include “SNAPSHOT.h“
static void usage(void) __attribute__((noreturn));
int quit_on_reply=0;
char *device=“eth0“;
int ifindex;
char *source;
struct in_addr src dst;
char *target;
int dad unsolicited advert;
int quiet;
int count=-1;
int timeout;
int unicasting;
int s;
int broadcast_only;
struct sockaddr_ll me;
struct sockaddr_ll he;
/*
struct sockaddr_ll
{
unsigned short sll_family;
__be16 sll_protocol;
int sll_ifindex;
unsigned short sll_hatype;
unsigned char sll_pkttype;
unsigned char sll_halen;
unsigned char sll_addr[8];
};
linux-2.6.27/include/linux/if_packet.h
*/
struct timeval start last;
int sent brd_sent;
int received brd_recv req_recv;
#define MS_TDIFF(tv1tv2) ( ((tv1).tv_sec-(tv2).tv_sec)*1000 + \
((tv1).tv_usec-(tv2).tv_usec)/1000 )
#define lixiprintf printf
void usage(void)
{
fprintf(stderr
“Usage: arping [-fqbDUAV] [-c count] [-w timeout] [-I device] [-s source] destination\n“
“ -f : quit on first reply\n“
“ -q : be quiet\n“
“ -b : keep broadcasting don‘t go unicast\n“
“ -D : duplicate address detection mode\n“
“ -U : Unsolicited ARP mode update your neighbours\n“
“ -A : ARP answer mode update your neighbours\n“
“ -V : print version and exit\n“
“ -c count : how many packets to send\n“
“ -w timeout : how long to wait for a reply\n“
“ -I device : which ethernet device to use (eth0)\n“
“ -s source : source ip address\n“
“ destination : ask for what ip address\n“
);
exit(2);
}
void set_signal(int signo void (*handler)(void))
{
struct sigaction sa;
memset(&sa 0 sizeof(sa));
sa.sa_handler = (void (*)(int))handler;
sa.sa_flags = SA_RESTART;
sigaction(signo &sa NULL);
}
int send_pack(int s struct in_addr src struct in_addr dst
struct sockaddr_ll *ME struct sockaddr_ll *HE)
{
int err;
struct timeval now;
unsigned char buf[256];
struct arphdr *ah = (struct arphdr*)buf;
unsigned char *p = (unsigned char *)(ah+1);
/*
struct arphdr
{
__be16 ar_hrd; //format of hardware address
__be16 ar_pro; //format of protocol address
unsigned char ar_hln; //length of hardware address
unsigned char ar_pln; //length of protocol address
__be16 a
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2009-04-13 18:13 iputils-s20071127-lixi\
文件 19271 2008-12-03 18:47 iputils-s20071127-lixi\arping.c
文件 22962 2008-12-03 18:47 iputils-s20071127-lixi\clockdiff.c
目录 0 2009-04-13 18:13 iputils-s20071127-lixi\doc\
文件 6044 2008-12-03 18:47 iputils-s20071127-lixi\doc\arping.sgml
文件 4606 2008-12-03 18:47 iputils-s20071127-lixi\doc\clockdiff.sgml
文件 4606 2008-12-03 18:47 iputils-s20071127-lixi\doc\clockdiff.sgml~
文件 26655 2008-12-03 18:47 iputils-s20071127-lixi\doc\docbook2man-spec.pl
文件 622 2008-12-03 18:47 iputils-s20071127-lixi\doc\index.db
文件 3533 2008-12-03 18:47 iputils-s20071127-lixi\doc\index.out
文件 6678 2008-12-03 18:47 iputils-s20071127-lixi\doc\iputils.db
文件 1165 2008-12-03 18:47 iputils-s20071127-lixi\doc\Makefile
文件 4839 2008-12-03 18:47 iputils-s20071127-lixi\doc\pg3.sgml
文件 19792 2008-12-03 18:47 iputils-s20071127-lixi\doc\ping.sgml
文件 4794 2008-12-03 18:47 iputils-s20071127-lixi\doc\rarpd.sgml
文件 6731 2008-12-03 18:47 iputils-s20071127-lixi\doc\rdisc.sgml
文件 7 2008-12-03 18:47 iputils-s20071127-lixi\doc\snapshot.db
文件 5090 2008-12-03 18:47 iputils-s20071127-lixi\doc\tftpd.sgml
目录 0 2008-12-22 13:39 iputils-s20071127-lixi\doc\tmp.db2html\
文件 5334 2008-12-03 18:47 iputils-s20071127-lixi\doc\tracepath.sgml
文件 2936 2008-12-03 18:47 iputils-s20071127-lixi\doc\traceroute6.sgml
文件 429 2008-12-03 18:47 iputils-s20071127-lixi\INSTALL
文件 571 2008-12-03 18:47 iputils-s20071127-lixi\ipg
文件 2084 2008-12-03 18:47 iputils-s20071127-lixi\iputils.spec
文件 2021 2008-12-03 18:47 iputils-s20071127-lixi\Makefile
目录 0 2009-04-13 18:13 iputils-s20071127-lixi\Modules\
文件 215 2008-12-03 18:47 iputils-s20071127-lixi\Modules\Makefile
文件 15506 2008-12-03 18:47 iputils-s20071127-lixi\Modules\pg3.c
文件 48674 2008-12-03 18:47 iputils-s20071127-lixi\ping.c
文件 25526 2008-12-03 18:47 iputils-s20071127-lixi\ping6.c
文件 29934 2008-12-03 18:47 iputils-s20071127-lixi\ping_common.c
............此处省略11个文件信息
- 上一篇:员工绩效管理系统的设计及实现
- 下一篇:电梯梯控数据分析助手
相关资源
- MyICQ 1.0a1
- linux二进制分析随书完整源码
- Qt实现GUI的二进制文件读写操作源码分
- 编译原理FOR循环语句的翻译程序设计
- itrip爱旅行网2017版源码+架构分析+视频
- AHT10.rar驱动源码帮助分析时序问题
- Image_一个简单的windowbuilder应用含源码
- 基于51单片机的智能调光台灯源码+原
- SAS数据分析报告
- web聊天室源码
- 美团外卖源码
- 炉石传说全套源码
- bzip2-1.0.6 源码
- 鼠标加速算法 c 源码
- 常用小波变换程序源码
- 支持x64版本的窗口内置滚动条皮肤库
- linux设备驱动程序开发 第四版 源码
- Vxworks下UDP收发与组播收发例程源码
- Codejock.Xtreme.Toolkit.Pro.v15.3.1源码VS201
- 遗传算法数据预测源码35540
- 厦门博饼游戏JS源码
- 磁盘分区隐藏 vc源码
- esp32 qt 源码
- 蓝牙通讯模块源码
- gps电脑接收端上位机源码
- 人工智能 归结原理 完整 源码 和文档
- 一个小型ECU源码
- 药店管理系统(源码以及数据库)
- 铭正同创液晶STM32 240128 源码
- 传奇脱机挂VC源码.rar
评论
共有 条评论