www.pudn.com > PortScan_sjtu.rar > SYNScan.h
#ifndef SYNScan_H
#define SYNScan_H
class SYNScan{
typedef struct ip_hdr
{
unsigned char ip_verlen; // 4-bit IPv4 version
// 4-bit header length (in 32-bit words)
unsigned char ip_tos; // IP type of service
unsigned short ip_totallength; // Total length
unsigned short ip_id; // Unique identifier
unsigned short ip_offset; // Fragment offset field
unsigned char ip_ttl; // Time to live
unsigned char ip_protocol; // Protocol(TCP,UDP etc)
unsigned short ip_checksum; // IP checksum
unsigned int ip_srcaddr; // Source address
unsigned int ip_destaddr; // Source address
} IPV4_HDR;
typedef struct PSD_HEADER //定义TCP伪首部
{
unsigned long src_addr; //源地址
unsigned long dest_addr; //目的地址
char mbz;
char protocol; //协议类型
unsigned short tcplength; //TCP长度
} IP_PSD_HDR;
typedef struct _tcphdr //定义TCP首部
{
unsigned short th_sport; //16位源端口
unsigned short th_dport; //16位目的端口
unsigned int th_seq; //32位序列号
unsigned int th_ack; //32位确认号
unsigned char th_lenres; //4位首部长度/6位保留字
unsigned char th_flag; //6位标志位
unsigned short th_win; //16位窗口大小
unsigned short th_checksum; //16位校验和
unsigned short th_urp; //16位紧急数据偏移量
}TCP_HDR;
public:
int Scan(char*,int Port_Dst,unsigned int,char* msg);
private:
USHORT checksum(USHORT *buffer, int size);
};
#endif