www.pudn.com > PortScan_sjtu.rar > FinScan.h


#ifndef FinScan_H 
#define FinScan_H 
 
class FinScan{ 
	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