91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 279.62 KB
    文件類型: .rar
    金幣: 1
    下載: 0 次
    發布日期: 2024-09-16
  • 語言: 其他
  • 標簽: ping??VC++??

資源簡介

這是一個用C語言寫的簡單的ping 程序,基本實現了ping程序的功能,程序結構簡潔,各個模塊都有說明,我想應該很容易明白,希望對大家有點幫助。開發環境是VC++6.0~~

資源截圖

代碼片段和文件信息

//?ping.cpp?:?Defines?the?entry?point?for?the?console?application.
//

#include?“stdafx.h“
#include
#include
#include
#include
#include
#pragma?comment(lib“WS2_32“)

typedef?struct?IPHeader?{
??UCHAR??iph_verlen;??//?Version?and?length?
??UCHAR??iph_tos;??//?Type?of?service?
??USHORT??iph_length;??//?Total?datagram?length?
??USHORT??iph_id;??//?Identification?
??USHORT??iph_offset;??//?Flags?fragment?offset?
??UCHAR??iph_ttl;??//?Time?to?live?
??UCHAR??iph_protocol;??//?Protocol?
??USHORT??iph_xsum;??//?Header?checksum?
??ULONG??iph_src;??//?Source?address?
??ULONG??iph_dest;??//?Destination?address?
}?IPHeader;?

USHORT?checksum(USHORT?*buffint?size)
{
unsigned?long?cksum?=?0;
//將數據以字單位累加到cksum?中
while(size?>?1)
{
cksum?+=?*buff++;
size?-=?sizeof(USHORT);
}
//如果為奇數,將最后一個字節擴展為雙字,再累加到cksum中
if(size)
{
cksum?+=?*(UCHAR*)?buff;
}
//將cksum的高16位和低16位相加,去反后得到校驗和
????cksum?=?(cksum?>>?16)+(cksum?&?0xffff);
cksum?+=?(cksum?>>?16);
return?(USHORT)(~cksum);
}

//定義ICMP頭的數據結構
typedef?struct?icmp_hdr
{
unsigned?char?icmp_type;??//消息類型
unsigned?char?inmp_code;??//代碼
unsigned?short?icmp_checksum;?//校驗和

//回顯頭
unsigned?short?icmp_id;??//標志請求的ID號
unsigned?short?icmp_sequence;?//序列號
unsigned?long?icmp_timestamp;?//時間戳
}?ICMP_HDR*PICMP_HDR;



int?main()
{
printf(“please?input?IP?address:\n“);
char?szDestIp[20];
????scanf(“%s“szDestIp);

// SOCKET?sRaw?=?::socket(PF_INETSOCK_RAWIPPROTO_IP);
???
WSADATA?wsaData;
if(WSAStartup(MAKEWORD(22)&wsaData)!=0)
{
printf(“啟動失敗!\n“);
return?0;
}
//創建原始套接字
SOCKET?sRaw?=?WSASocket(AF_INET?SOCK_RAW?IPPROTO_ICMP?NULL?0WSA_FLAG_OVERLAPPED);
//設置接收超時
int?timeout=2000; ?
????if(setsockopt(sRaw?SOL_SOCKET?SO_RCVTIMEO?(char*)&timeout?sizeof(timeout))==?SOCKET_ERROR)?
????{
????????printf(“Setting?Socket?Wrong“);
????????return?0;
????}
//設置目的地址
SOCKADDR_IN?dest;
dest.sin_family?=?AF_INET;
dest.sin_port?=?htons(0);
if(INADDR_NONE==(dest.sin_addr.S_un.S_addr?=?inet_addr(szDestIp)))
{
printf(“ip?address?wrong“);
}

//創建一個?ICMP?封包
char?buff[sizeof(ICMP_HDR)+32];
ICMP_HDR*pIcmp?=?(ICMP_HDR*)buff;
pIcmp->icmp_type?=?8;
pIcmp->inmp_code?=?0;
pIcmp->icmp_id?=?(USHORT)::GetCurrentProcessId();
pIcmp->icmp_checksum?=?0;
pIcmp->icmp_sequence?=?0;

memset(&buff[sizeof(ICMP_HDR)]‘E‘32);?//填充數據部分,可以任意??void?*memset(?void?*dest?int?c?size_t?count?);Sets?buffers?to?a?specified?character.

//開始發送和接收ICMP封包
????USHORT?nSeq?=?0;
char?recvBuf[1024];
SOCKADDR_IN?from;?//一個結構體
????int?nLen?=?sizeof(from);

while?(TRUE)
{
static?int?nCount?=?0;
int?nRet;
nCount++;
if(nCount?==?4)?break;
pIcmp->icmp_checksum?=?0;
pIcmp->icmp_timestamp?=?::GetTickCount();
pIcmp->icmp_sequence??=?nSeq++;
pIcmp->icmp_checksum?=?checksum((USHORT*)buffsizeof(ICMP_HDR)+32);
nRet?=?::sendto?(sRawbuffsizeof(ICMP_HD

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件????????731??2008-12-08?16:43??ping\ping.h

?????文件????????667??2008-12-26?18:24??ping\StdAfx.h

?????文件???????1196??2008-12-26?18:24??ping\ReadMe.txt

?????文件???????4512??2008-12-26?18:24??ping\ping.dsp

?????文件????????533??2008-12-26?18:24??ping\ping.dsw

?????文件??????58368??2009-01-02?17:20??ping\ping.ncb

?????文件???????1308??2008-12-29?13:32??ping\ping.plg

?????文件????????311??2008-12-26?18:40??ping\StdAfx.cpp

?????文件???????3676??2008-12-29?13:32??ping\ping.cpp

?????文件??????53760??2009-01-02?17:20??ping\ping.opt

?????文件?????164864??2009-01-02?16:38??ping\Debug\vc60.idb

?????文件?????187100??2008-12-26?18:40??ping\Debug\ping.pch

?????文件?????258048??2008-12-29?13:32??ping\Debug\vc60.pdb

?????文件?????167984??2008-12-29?13:32??ping\Debug\ping.exe

?????文件?????443392??2008-12-29?13:32??ping\Debug\ping.pdb

?????文件??????11439??2008-12-26?18:40??ping\Debug\StdAfx.obj

?????文件?????198044??2008-12-29?13:32??ping\Debug\ping.ilk

?????文件??????50290??2008-12-29?13:32??ping\Debug\ping.obj

?????目錄??????????0??2009-01-03?15:37??ping\Debug

?????目錄??????????0??2009-01-03?15:37??ping

-----------?---------??----------?-----??----

??????????????1606223????????????????????20


評論

共有 條評論