1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
#include <iostream>
#include <windows.h>
#include <winsock2.h>
#include <string>
#include <fstream>
using namespace std;
int WSAStart()
{
WSADATA wsa;
return WSAStartup(MAKEWORD(2,0), &wsa);
}
int cstringlen(char array[])
{
int counter=0;
while (array[counter]!=0)
{
counter++;
}
return counter;
}
void gebaus(char array[])
{
for (int i=0;array[i]!=0;i++)
{
cout << array[i];
}
cout << endl;
}
string getData()
{
int MAX_LENGTH = 8000;
char crlf = 13;
char buffer[MAX_LENGTH];
string data;
data = "GET / HTTP/1.0\n"
"Host: localhost\n"
"User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.16) Gecko/2009120208 Firefox/3.0.16 (.NET CLR 3.5.30729)\n"
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\n"
"Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3\n"
"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\n"
"Keep-Alive: 300\n"
"Connection: keep-alive\n\n";
return data;
}
int login()
{
SOCKET s;
if (WSAStart()!=0)
{
cout << "WSA konnte nicht gestartet werden!" << endl;
system("pause");
return -1;
}
s = socket(AF_INET, SOCK_STREAM, 0);
if (s==INVALID_SOCKET)
{
cout << "Socket konnte nicht ertellt werden!" << endl;
system("pause");
return -1;
}
sockaddr_in addr;
memset(&addr,0,sizeof(SOCKADDR_IN)); // zuerst alles auf 0 setzten
addr.sin_family = AF_INET;
addr.sin_port = htons(80);
addr.sin_addr.s_addr = inet_addr("74.125.39.99");
long rc = connect(s, (SOCKADDR*)&addr, sizeof(sockaddr));
if (rc==SOCKET_ERROR)
{
cout << "Verbindung konnte nicht hergestllet werden!" << endl;
system("pause");
return -1;
}
else
{
cout << "Verbindung wurde erfolgreich hergestllt!" << endl;
}
string data = getData();
char buffer[5000];
strcpy(buffer, data.c_str());
rc = send(s, buffer, sizeof(buffer), 0); //senden
if (rc==SOCKET_ERROR)
{
cout << "Fehler beim Senden der Daten!" << endl;
system("pause");
return -1;
}
else
{
cout << "Daten wurden erfolgreich gesendet!" << endl;
}
char bufrecv[5000];
rc = 1;
while (rc!=0)
{
rc = recv(s, bufrecv, 1, 0);
}
fstream f;
f.open("hello.htm");
for (int i=0;bufrecv[i]!=0;i++)
{
f << bufrecv[i];
}
f << endl;
f.close();
}
void stradd(char array1[], char array2[])
{
int len1 = cstringlen(array1);
int len2 = cstringlen(array2);
char ergebnis[len1+len2+1];
strcpy(ergebnis, array1);
for (int i=0;array2[i]!=0;i++)
{
ergebnis[len1+i] = array2[i];
}
gebaus(ergebnis);
}
int main(int argc, char *argv[])
{
login();
system("pause");
}
|