Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > создание TCP пакетов в Windows


Автор: RuKachStudent 25.10.2002, 04:50
Здравствуйте люди! Нужна помощь. Если у вас завалялись исходники в которых бы описывалось как создать вручную TCP пакет,чтобы можно было задавать флаги и другие настройки TCP пакета,то прошу выслать их мне [email protected] . Заранее благодарен! Очень нужно! :baaa

Автор: Baa 30.10.2002, 09:46
Наерно интересует нечто навроде следующего (даю токо кусочек проги... тебе токо начало-то и надо (впрочем до конца эту прогу я так и не дописал))
Код

SOCKET s = socket(AF_INET, SOCK_RAW, 1);

if (s == INVALID_SOCKET)
{
WSAGetLastError();
return 0;
}

unsigned int iTrue=1;

if(setsockopt(s, IPPROTO_IP, IP_HDRINCL, (char*)&iTrue, sizeof(iTrue)) == SOCKET_ERROR)
{
WSAGetLastError();
return 0;
}

typedef struct _ICMPHeader
{
unsigned char ICMPType;
unsigned char ICMPCode; // Type sub code
unsigned short ICMPChecksum;
union
{
struct {unsigned char uc1,uc2,uc3,uc4;} sUC;
struct {unsigned short us1,us2;} sUS;
unsigned long sUL;
} sICMP;
unsigned long ICMP_Originate_Timestamp; // Not standard field in header, but reserved nonetheless
unsigned long ICMP_Receive_Timestamp;
unsigned long ICMP_Transmit_Timestamp;
} ICMPHeader;

typedef ICMPHeader FAR * LPICMPHeader;
#define ICMPHeaderLength sizeof(ICMPHeader)

typedef struct _IpHeader
{
unsigned char HeaderLength_Version;
unsigned char TypeOfService; // Type of service
unsigned short TotalLength; // total length of the packet
unsigned short Identification; // unique identifier
unsigned short FragmentationFlags; // flags
unsigned char TTL; // Time To Live
unsigned char Protocol;           // protocol (TCP, UDP etc)
unsigned short CheckSum; // IP Header checksum

unsigned int sourceIPAddress; // Source address
unsigned int destIPAddress; // Destination Address

} IpHeader;

   typedef IpHeader FAR * LPIpHeader;

#define IpHeaderLength sizeof(IpHeader)

LPICMPHeader lpHead;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)