RAW Socket
-
Habe ein Programm von Mavericks Seite nach programmiert unter W98.
Leider tut es nicht das was es soll.
Hier ist der Quellcode.int __fastcall TNetzwerk::Paketsenden() { int on=1,bytes; char buffer[1024]; unsigned short usPacketLen; struct iphdr *ip; struct tcphdr *tcp; SOCKET sckSocket; SOCKADDR_IN saDestination; sckSocket=socket(AF_INET, SOCK_RAW, IPPROTO_TCP); // hier steigt das Prog. aus, da IP_HDRINCL nicht unter W98 geht // gibt es was anderes if(setsockopt(sckSocket, IPPROTO_IP, IP_HDRINCL, (char *)&on, sizeof(on))==-1){ WSAErrorHandling(WSAGetLastError()); // bekomme "Unzulässiges Argument" } ip = (struct iphdr*)buffer; tcp = (struct tcphdr*)(buffer+sizeof(struct iphdr)); memset(ip,0,sizeof(struct iphdr)); ip->version = 4; ip->ihl = 5; ip->tot_len = htons(sizeof(struct iphdr)+sizeof(struct tcphdr)); ip->id = random(255); ip->ttl = 255; ip->protocol = IPPROTO_TCP; ip->sourceIP = inet_addr("1.2.3.4"); ip->destIP = inet_addr("192.168.0.2"); memset(tcp,0,sizeof(struct tcphdr)); tcp->source = htons(1024); tcp->dest = htons(1234); tcp->seq = random(255); tcp->doff = 5; tcp->syn = 1; tcp->window = htons(65535); saDestination.sin_addr.s_addr = ip->destIP; // to local host saDestination.sin_family = AF_INET; saDestination.sin_port = tcp->dest; // unused for(;;){ bytes = sendto(sckSocket, buffer, ntohs(ip->tot_len), 0, (SOCKADDR *) &saDestination, sizeof(saDestination)); if(bytes == -1){ // bytes ist immer -1 WSAErrorHandling(WSAGetLastError());// bekomme "Unzulässiges Argument" } Sleep(1000); } return 0;
Bitte helft mir.
-
Wars nicht so das man unter win98 keine raw sockets verwenden kann?!
-
Ich hasse Windows, ich hasse Microsoft, killt BILL GATES!!!!
-
da magst du ja recht haben *g* aber sicher bin ich mir nicht wie gesagt nicht...
-
Habe hier meine Bestätigung gefunden.
[url]http://www.zotteljedi.de/unsupported/winux.html [/url]
Unter: "Aus der Sicht eines Programmierers"
-
Gibt es eine Möglichkeit trotz Benutzung von SOCK_STREAM auf den TCP-Header zuzugreifen?
-
Hey nicht so schnell, ich glaube es gibt noch eine Möglichkeit auch unter Win98 Raw Sockets verfügbar zu machen. Ich mein da gab es mal nen Winsock Patch oder sowas ähnliches für, meine mich dunkel daran zu erinnern mal für ein Programm soetwas heruntgeladen zu haben damit es unter Win98 laufen konnte.
MFG