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

📄 ip_opt_build.c

📁 VC++源代码
💻 C
字号:
/* * $smu-mark$ * $name: memunlock.c$ * $other_author: Mika <mika@qualys.com> * $other_copyright: Copyright (C) 1999 Mika <mika@qualys.com> * $license: This software is under GPL version 2 of license$ * $date: Fri Nov  5 11:55:48 MET 1999$ * $rev: 2$ */#include <stdio.h>#include <string.h>#ifndef WIN32#include <sys/types.h>#include <netinet/in.h>#include <sys/socket.h>#include <arpa/inet.h>#else#include <winsock2.h>#endif                     #include "hping2.h"#include "globals.h"unsigned char ip_opt_build(char* ip_opt){	unsigned char optlen = 0;	unsigned long ip;    memset(ip_opt, 1, sizeof(ip_opt));    if (opt_lsrr)    {        if (lsr_length<=39)        {            memcpy(ip_opt, &lsr, lsr_length);            optlen += lsr_length;        }        else        {            printf("Warning: loose source route is too long, discarding it");            opt_lsrr=0;        }    }    if (opt_ssrr)    {        if (ssr_length+optlen<=39)        {            memcpy(ip_opt + optlen, &ssr, ssr_length);            optlen += ssr_length;        }        else        {            printf("Warning: strict source route is too long, discarding it");            opt_ssrr=0;        }    }	if (opt_rroute)	{        if (optlen<=33)        {    		ip_opt[optlen]=IPOPT_RR;     		ip_opt[optlen+1]=39-optlen;    		ip_opt[optlen+2]=8;    		ip=inet_addr("1.2.3.4");    		memcpy(ip_opt+optlen+3,&ip,4);            optlen=39;        }        else        {            printf("Warning: no room for record route, discarding option\n");            opt_rroute=0;        }	}    if (optlen)    {        optlen = (optlen + 3) & ~3;        ip_opt[optlen-1] = 0;        return optlen;    }    else        return 0;}

⌨️ 快捷键说明

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