HTTP request
-
Hallo allerseits,
ich weiß nicht, ob diese die richtige Stelle für meine Frage ist, aber ich hoffe, Ideen zu bekommen.Wie kann ich auf alle (oder eine) ausgehende Http Requests, die von einer Applikation auf dem selben Rechner geschickt wurde, zugreifen, um z.B. Header auszulesen?
Grüße
-
was hast denn damit vor? o_O :p
Also generel sind Progs die einfach so mithören nicht sehr beliebt... Wenn das ganze den User nicht verunsichern sollte, bau nen Proxy. Einfach ein Prog mit nem sende und empfangstheread. Der user configuriert dann seinen Browser so, das über den Proxy mit dem i-Net konfiguriert und schickst einfach alle einkommenden Daten von Brwoser 1:1 weiter und höhrst mit. Das gibt dem Anwender das gefühl von sicherheit, da er das ding ja jederzeit wieder umgehen kann..
Aber nun zu dir..
Ich gib dir einfach mal etwas code, wenn was nicht verstehst kannst ja fragen:SOCKET socket; WSADATA wsd; char RecvBuf[65535] = {0}; DWORD dwRet; unsigned int optval = 1; WSAStartup(MAKEWORD(2,1),&wsd); socket = socket(AF_INET, SOCK_RAW, IPPROTO_IP); char FAR name[MAX_HOSTNAME_LAN]; gethostname(name, MAX_HOSTNAME_LAN); struct hostent FAR * pHost; pHost = (struct hostent * )malloc(sizeof(struct hostent)); pHost = gethostbyname(name); SOCKADDR_IN sa; sa.sin_family = AF_INET; sa.sin_port = htons(6000); memcpy(&sa.sin_addr.S_un.S_addr, pHost->h_addr_list[0], pHost->h_length); bind(socket, (SOCKADDR *)&sa, sizeof(sa)); WSAIoctl(socket, SIO_RCVALL, &optval, sizeof(optval), NULL, 0, &dwRet, NULL, NULL); while (1) { memset(RecvBuf, 0, sizeof(RecvBuf)); recv(socket, RecvBuf, sizeof(RecvBuf), 0); // und nu guck mal in RecvBuf... ;)
[ Dieser Beitrag wurde am 21.05.2003 um 11:07 Uhr von CMatt editiert. ]
-
@CMatt,
danke für das Thread.
Ich kenne mich gut aus mit Sockets. Es gibt aber kein Browser; die Applikation, die das Request schickt, ist ein Windows Form, also wenn auf den Button "Go" geclickt wird, wird ein Http Request geschickt, und zu diesem Zeitpunkt möchte ich, und auf dem selben Rechner, in ihre Request reinlesen.Grüße
-
Warum machst du das dann nicht intern mit nem Proxy? Wenn du das so wie aus meinem Code machst, landet nähmlich auch der ganze andere Müll dort, d.h Wenn einer grad beim surfen ist, kommt auch alles vom Browser dort rein und du musst erst wieder filtern..