资源简介
ICMP的地址掩码协议实现,该协议用于向本地网络获取当前网络地址的掩码
代码片段和文件信息
#include
#include
#include
#include
#include “getmask.h“
#define ICMP_MASK_REQ 17
#define ICMP_MASK_REP 18
#define ICMP_MASK_SIZE 12
int nsend = 0;
/*
* Function: cal_cksum
* Purpose: calculate checksum of icmp header
* Parameters: addr - start address of icmp header
* len - icmp length
* Return: calculated checksum
*/
uint16_t cal_cksum(uint16_t *addr int len)
{
int nleft = len;
uint32_t sum = 0;
uint16_t *w = addr;
uint16_t answer = 0;
while (nleft > 1) {
sum += *w++;
nleft -= 2;
}
if (nleft == 1) {
*(unsigned char *)(&answer) = *(unsigned char *)w ;
sum += answer;
}
sum = (sum >> 16) + (sum & 0xffff);
sum += (sum >> 16);
answer = ~sum;
return(answer);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 217 2010-04-18 13:37 icmpmask\makefile
文件 2586 2010-04-18 13:05 icmpmask\getmask.c
文件 1123 2010-03-22 14:42 icmpmask\getmask.h
文件 1352 2010-04-18 13:38 icmpmask\icmpmask.c
目录 0 2010-03-29 20:34 icmpmask
----------- --------- ---------- ----- ----
5278 5
评论
共有 条评论