#include<stdio.h>
#include<string.h>
#include<Winsock2.h>
#include<ws2tcpip.h>
#include<time.h>
#pragma comment(lib,"WS2_32.lib") //载入windows下socket
/*========================================================*/
/* 下面这段程序为兼容windows环境下各版本socket定义 */
/*=========================================================*/
#ifndef _MSTCPIP_INC
#define _MSTCPIP_INC
// Copyright (C) Microsoft Corporation, 1996-1999
#if _MSC_VCR >1000
#pragma once
#endif
/* Argument structure for SIO_KEEPALIVE_VALS */
struct tcp_keepalive
{
u_long onoff;
u_long keepalivetime;
u_long keepaliveinterval;
};
/* New WSAIoctl Options */
#define SIO_RCVALL _WSAIOW(IOC_VENDOR,1)
#define SIO_RCVALL_MCAST _WSAIOW(IOC_VENDOR,2)
#define SIO_RCVALL_IGMPMCAST _WSAIOW(IOC_VENDOR,3)
#define SIO_KEEPALIVE_VALS _WSAIOW(IOC_VENDOR,4)
#define SIO_ABSORB_RTRALERT _WSAIOW(IOC_VENDOR,5)
#define SIO_UCAST_IF _WSAIOW(IOC_VENDOR,6)
#define SIO_LIMIT_BROADCASTS _WSAIOW(IOC_VENDOR,7)
#define SIO_INDEX_BIND _WSAIOW(IOC_VENDOR,8)
#define SIO_INDEX_MCASTIF _WSAIOW(IOC_VENDOR,9)
#endif
/*=================================================================*/
/*start.. */
struct IPHeader
{
unsigned char Version_HLen; //版本号
unsigned char TOS; //服务类型
unsigned short Length; //总长度
unsigned short Ident; //标识
unsigned short Flags_Offset; //段偏移量
unsigned char TTL; //生存周期
unsigned char Protocol; //协议
unsigned short Checksum; //校验和
unsigned int SourceAddr; //源地址
unsigned int DestinationAddr; //目的地址
};
str