⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ipcsum.c

📁 一个网络流量分析的完整的程序
💻 C
字号:
/* * in_cksum -- *      Checksum routine for Internet Protocol family headers (C Version) * *      borrowed from the ping program from the Linux NetKit.   *      This is a standard C version of the *      IP header checksum calculation algorithm. */#include <sys/types.h>int in_cksum(u_short * addr, int len){    register int nleft = len;    register u_short *w = addr;    register int sum = 0;    u_short answer = 0;    /*     * Our algorithm is simple, using a 32 bit accumulator (sum), we add     * sequential 16 bit words to it, and at the end, fold back all the     * carry bits from the top 16 bits into the lower 16 bits.     */    while (nleft > 1) {	sum += *w++;	nleft -= 2;    }    /* mop up an odd byte, if necessary */    if (nleft == 1) {	*(u_char *) (&answer) = *(u_char *) w;	sum += answer;    }    /* add back carry outs from top 16 bits to low 16 bits */    sum = (sum >> 16) + (sum & 0xffff);	/* add hi 16 to low 16 */    sum += (sum >> 16);		/* add carry */    answer = ~sum;		/* truncate to 16 bits */    return (answer);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -