国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Z5NTS功能之icmp

2019-11-17 04:36:19
字體:
來源:轉載
供稿:網友
Author:zfive5(zhaozidong)Email :zfive5@yahoo.com.cn連續兩天,終于完成了Z5NTS imcp部分-可以發送所有imcp類型數據,對icmp協議也有了近一步的熟悉,IMCP類型說明如下(主要是參見stevens的TCP/ip三卷,這幾本讀三遍也不為過):Z5NTS功能之icmp(圖一)
點擊查看大圖
 類型 代碼  描述0     0    回顯應答3          目的不可達0    網絡不可達
1    主機不可達2    協議不可達3    端口不可達4    需要進行分片但設置了不分片比特5    源站選路失敗6    目的網絡不熟悉7    目的主機不熟悉8    源主機被隔離(作廢不用)9    目的網絡被強制禁止
10   目的主機被強制禁止11   由于服務類型TOS網絡不可達12   由于服務類型TOS主機不可達13   由于過濾,通信被強制禁止14   主機越權15   優先權中止生效4     0    源端被關閉5          重定向
0    對網絡重定向1    對主機重定向2    對服務類型和網絡重定向3    對服務類型和主機重定向8     0    請求回顯(Ping請求)9     0    路由器通告10    0    路由器請求11         超時0    傳輸期間生存時間為0
1    在數據報組裝期間生存時間為012         參數問題0    壞的IP首部(包括各種差錯)1    缺少必需的選項13    0    時間戳請求14    0    時間戳應答15    0    信息請求(作廢不用)16    0    信息應答(作廢不用)17    0    地址掩碼請求
18    0    地址掩碼應答功能界面如下: Z5NTS功能之icmp(圖二) 功能介紹:根據所選類型生成對應的格式圖樣,然后用戶在參照對應的格式圖樣形成對應的協議數據,例如回送請求類型的十六進制數據如下:類 型:08代 碼:00校驗和:00,00,(這里需要使用CheckSum函數來計算)標識符:01,02序 號:02,01數 據:00,00,00,00
核心代碼如下:typedef strUCt ICMPHeader {       UCHAR   icmp_type;      // icmp type       UCHAR   icmp_code;      // icmp code       USHORT  icmp_checksum;  // icmp checksum    unsigned char    szBUF[1];} ICMPHDR; int Open(){       hSock=socket(AF_INET,SOCK_RAW,IPPROTO_ICMP);       if(hSock==INVALID_SOCKET)       {              return -1;       }
       int iTimeOut=15000;       setsockopt(hSock,SOL_SOCKET,SO_RCVTIMEO,(char *)&iTimeOut,sizeof(iTimeOut));       return 0;}int Close(){       if(hSock!=INVALID_SOCKET)              closesocket(hSock);       hSock=NULL;       return 0;}int IcmpSend(char *szAddr,char *szInBUF,int iInLen,int iType){       struct hostent *phs;       struct sockaddr_in in;
       in.sin_family =AF_INET;       in.sin_port=htons(0);       in.sin_addr.S_un.S_addr =inet_addr(szAddr);       if(in.sin_addr.S_un.S_addr==INADDR_NONE)       {              phs=gethostbyname(szAddr);              in.sin_addr.s_addr=*((u_long *)&(phs->h_addr_list[0]));       }       if(iType==0)       {          ICMPHDR *pICMPHDR=(ICMPHDR *)(szInBUF);          pICMPHDR->icmp_checksum=0;          pICMPHDR->icmp_checksum=CheckSum((unsigned short *)szInBUF,iInLen);       }
    int iRet;       iRet=sendto(hSock,szInBUF,iInLen,0,(struct sockaddr *)&in,sizeof(struct sockaddr_in));       if(iRet==SOCKET_ERROR)       {              return -1;       }              if(iRet!=iInLen)       {              return -2;       }       return 0;}unsigned short CheckSum(unsigned short *szBUF,int iSize){       unsigned long ckSum=0;    for(;iSize>1;iSize-=sizeof(unsigned short))
       {              ckSum+=*szBUF++;       }       if(iSize==1)       {              ckSum+=*(unsigned char *)szBUF;       }       ckSum=(ckSum>>16)+(ckSum&0xffff);       ckSum+=(ckSum>>16);       return(unsigned short )(~ckSum);}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 怀远县| 福海县| 沂南县| 仁怀市| 宜春市| 都兰县| 郧西县| 贡嘎县| 涿州市| 竹山县| 合山市| 三亚市| 泗水县| 田东县| 绥芬河市| 松溪县| 靖西县| 巴彦淖尔市| 油尖旺区| 扶沟县| 满洲里市| 襄汾县| 长顺县| 白山市| 砚山县| 衡水市| 夏邑县| 甘孜县| 若羌县| 容城县| 子洲县| 江西省| 昆明市| 綦江县| 清远市| 呼和浩特市| 拉萨市| 阿瓦提县| 曲松县| 晴隆县| 宝坻区|