je0n
18.06.2007, 02:51
Есть такой сервис izobilnik.ru/random11.aspx. Там можно класть себе на мобилу 6 руб. в день. Там нужно угадывать цвет, нажимать на рекламу, и если угадал цвет, тебе прейдет 2 руб. на счет.
Короче я этот процесс весь автоматизировал ) Вот выкладываю программку, которая все делает за вас. Можете поставить ее на запуск раз в сутки и больше не париться :)
Как работает: просто запустите из командной строки phone_money.exe и получите пояснения с какими параметрами запускать и пример.
Еще... Во время работы программы, будут мелькать различные хттп-запросы, заголовки. и время от времени программа будет на минуту (60 сек!!!!) "зависать". Так вот это она не зависает, и просто ждет минуту (Sleep(60000);). Там по правилам сайта, который эту халяву предоставляет так надо. Впадлу рассказывать, если интересно попробуйте через броузер получить деньги и поймете. Короче как программа "зависнет", не беспокойтесь! все нормально!
//by je0n je0n@inbox.ru
//Greetz: Great,groundhog,el' спасибо Вам большое, очень сильно помогли в коде. хотя, 100 пудов, и не знали для чего помогали )
#include <iostream>
#include <stdio.h>
#include <winsock2.h>
#include <string.h>
#include <time.h>
char* GETRequest(char*,char*);
char* POSTRequest(char*,char*,char*,char*);
char* str_replace(char*,char*,char*);
int main(int argc, char* argv[])
{
if(argc>2)
{
char hidden[1000];
char phone[15];
bool b;
char opsos[10];
char cookie[200];
char location[200];
char post[1000];
char p[50000];
int i;
int n,start,finish;
for(i=0;i<3;i++)
{
b=true;
while(b)
{
lstrcpy(p,GETRequest("izobilnik.ru","/random11.aspx"));
n=(int)(strstr(p,"Cookie: ")-(DWORD)p); //получаем куки
start=n+8;
finish=(int)(strstr(p+start,"\r\n")-(DWORD)(p+start))+1;
lstrcpyn(cookie,p+start,finish);
printf("\r\n");
printf(cookie);
n=(int)(strstr(p,"__")-(DWORD)p);
start=n+20;
finish=(int)(strstr(p+start,"\"")-(DWORD)(p+start))+1;
lstrcpyn(hidden,p+start,finish); //в хиден ебошим скрытое поле с именем __VIEWSTATE
str_replace(hidden,"+","%2B");
// printf(hidden);
//Составляем POST-запрос для random11.aspx
lstrcpy(phone,argv[1]);
lstrcpy(opsos,argv[2]);
lstrcpy(post,"TextBox2=");
lstrcat(post,phone);
lstrcat(post,"&ddl=");
lstrcat(post,opsos);
lstrcat(post,"&rbl1=1&");
lstrcat(post,"__VIEWSTATE=");
lstrcat(post,str_replace(hidden,"=","%3D"));
lstrcat(post,"&ImageButton1.x=50&ImageButton1.y=30");
printf("\r\n");
printf(post);
printf("\r\n");
lstrcpy(p,POSTRequest("izobilnik.ru","/random11.aspx",post,cookie));
printf(p);
//СОСТАВЛЯЕМ ЗАПРОС ДЛЯ ПРОВЕРКИ НОМЕРА в random12.aspx
Sleep(60000); //спим, чтобы прошла минута, по правилам сайта
lstrcpy(p,GETRequest("izobilnik.ru","/random12.aspx"));
n=(int)(strstr(p,"Cookie: ")-(DWORD)p); //получаем куки
start=n+8;
finish=(int)(strstr(p+start,"\r\n")-(DWORD)(p+start))+1;
lstrcpyn(cookie,p+start,finish);
printf("\r\n");
printf(cookie); //Вот эти кукисы нужно подставить в POST-запрос в /random13.aspx
n=(int)(strstr(p,"__")-(DWORD)p);
start=n+20;
finish=(int)(strstr(p+start,"\"")-(DWORD)(p+start))+1;
lstrcpyn(hidden,p+start,finish); //в хиден ебошим скрытое поле с именем __VIEWSTATE
str_replace(hidden,"+","%2B");
//Составляем POST-запрос для random12.aspx
lstrcpy(post,"TextBox2=");
lstrcat(post,phone);
lstrcat(post,"&__VIEWSTATE=");
lstrcat(post,str_replace(hidden,"=","%3D"));
lstrcat(post,"&ImageButton1.x=55&ImageButton1.y=34");
printf("\r\n");
printf(post);
printf("\r\n");
lstrcpy(p,POSTRequest("izobilnik.ru","/random12.aspx",post,cookie));
printf(p);
//Из переменной p выстаскиваем заголовок Location: Если Location=random13.aspx, то делаем POST-запрос к random13.aspx с ранее полученными куками, иначе болты и начинаем все сначала
n=(int)(strstr(p,"Location: ")-(DWORD)p); //получаем Location:
start=n+10;
finish=(int)(strstr(p+start,"\r\n")-(DWORD)(p+start))+1;
lstrcpyn(location,p+start,finish);
if(lstrcmp(location,"/random13.aspx")==0) //если в условии, то все заебато, и составляем последний post-запрос
{
lstrcpy(p,GETRequest("izobilnik.ru","/random13.aspx"));
n=(int)(strstr(p,"__")-(DWORD)p);
start=n+20;
finish=(int)(strstr(p+start,"\"")-(DWORD)(p+start))+1;
lstrcpyn(hidden,p+start,finish); //в хиден ебошим скрытое поле с именем __VIEWSTATE
str_replace(hidden,"+","%2B");
lstrcpy(post,"__VIEWSTATE=");
lstrcat(post,str_replace(hidden,"=","%3D"));
lstrcat(post,"&ImageButton1.x=91&ImageButton1.y=20");
printf("\r\n");
printf(post);
lstrcpy(p,POSTRequest("izobilnik.ru","/random13.aspx",post,cookie));
printf(p);
b=false;
printf("\r\nUGADAL\r\n");
}
else
{
printf("\r\nne ugadal\r\n");
Sleep(3000);
}
}
}
}
else
{
printf("\r\nfirst argument is your phone;\r\nsecond argument is number of operator:\r\n11-MTS\r\n12-Megafon-Moskva;\r\n14-Megafon-Centr;\r\n15-Megafon Dal'nii Vostok\r\n16-Megafon-Kavkaz\r\n17-Megafon-Povolgie\r\n18-Megafon Severo-Zapad\r\n19-Megafon-Sibir'\r\n20-Megafon Ural\r\n21-BashCell\r\n22-NSS\r\n23-Sotel-SSB\r\n24-TatinCom\r\n25-Tele2\r\n26-Utel\r\n====Example:====\r\nphone_money.exe 9081856542 25\r\n");
}
return 0;
}
char* GETRequest(char* server,char* page)
{
WSADATA sock_info;
int err=WSAStartup(MAKEWORD(2,0),&sock_info);
if(err==SOCKET_ERROR)
{
printf("WSAStartup error");
return 0;
}
int sock;
struct sockaddr_in sa;
struct hostent* h;
char page_text[50000];
char buf_in[10];
char buf_out[500];
int x;
sa.sin_family=AF_INET;
sa.sin_port=htons(80);
h=gethostbyname(server);
memcpy(&sa.sin_addr,h->h_addr_list[0],h->h_length);
sock=socket(AF_INET,SOCK_STREAM,0);
if(connect(sock,(sockaddr*)&sa,sizeof(sa))<0)
{
printf("connect() error");
return 0;
}
lstrcpy(buf_out,"GET "); //Составляем GET-запрос
lstrcat(buf_out,page);
lstrcat(buf_out," HTTP/1.0\r\n");
send(sock,buf_out,lstrlen(buf_out),0);
lstrcpy(buf_out,"Host: izobilnik.ru\r\n");
send(sock,buf_out,lstrlen(buf_out),0);
lstrcpy(buf_out,"Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, */*\r\n"); //заголовок Accept:
send(sock,buf_out,lstrlen(buf_out),0);
lstrcpy(buf_out,"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)\r\n\r\n"); //заголовок User-Agent:
send(sock,buf_out,lstrlen(buf_out),0);
lstrcpy(page_text,"");
x=recv(sock,buf_in,sizeof(buf_in)-1,0); //в buf_in должен быть заголовок Content-length,его надо прочитать и превратить в цифру, чтобы потом знать, когда я получу последний символ страницы, чтобы не вызвать левый вызов recv()
while(x>0) //Хотя я как посмотрю, сейчас оно НАХУЙ НЕ НАДО!!!
{
buf_in[x]=0;
lstrcat(page_text,buf_in);
// printf(buf_in);
x=recv(sock,buf_in,sizeof(buf_in)-1,0);
}
closesocket(sock);
return page_text;
}
char* POSTRequest(char* server,char* page,char * request,char* cookie)
{
WSADATA sock_info;
int err=WSAStartup(MAKEWORD(2,0),&sock_info);
if(err==SOCKET_ERROR)
{
printf("WSAStartup error");
return 0;
}
int sock;
struct sockaddr_in sa;
struct hostent* h;
char page_text[50000];
char buf_in[10];
char buf_out[1000];
int x;
sa.sin_family=AF_INET;
sa.sin_port=htons(80);
h=gethostbyname(server);
memcpy(&sa.sin_addr,h->h_addr_list[0],h->h_length);
sock=socket(AF_INET,SOCK_STREAM,0);
if(connect(sock,(sockaddr*)&sa,sizeof(sa))<0)
{
printf("connect() error");
return 0;
}
lstrcpy(buf_out,"POST "); //Составляем POST-запрос
lstrcat(buf_out,page);
lstrcat(buf_out," HTTP/1.0\r\n");
send(sock,buf_out,lstrlen(buf_out),0);
lstrcpy(buf_out,"Host: izobilnik.ru\r\n"); //Заголовок HOST
send(sock,buf_out,lstrlen(buf_out),0);
lstrcpy(buf_out,"Content-Type: application/x-www-form-urlencoded\r\n"); //заголовок Content-Type
send(sock,buf_out,lstrlen(buf_out),0);
// lstrcpy(buf_out,"Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, */*\r\n"); //заголовок Accept:
// printf(buf_out);
// send(sock,buf_out,lstrlen(buf_out),0);
// lstrcpy(buf_out,"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)\r\n"); //заголовок User-Agent:
// printf(buf_out);
// send(sock,buf_out,lstrlen(buf_out),0);
x=lstrlen(request);
lstrcpy(buf_out,"Content-Length: "); //Загловок Content-Length
lstrcat(buf_out,itoa(x,buf_in,10));
lstrcat(buf_out,"\r\n");
send(sock,buf_out,lstrlen(buf_out),0);
lstrcpy(buf_out,"Cookie: "); //заголовок Cookie:
lstrcat(buf_out,cookie);
lstrcat(buf_out,"\r\n\r\n");
send(sock,buf_out,lstrlen(buf_out),0);
lstrcpy(buf_out,request); //POST-запрос
lstrcat(buf_out,"\r\n");
send(sock,buf_out,lstrlen(buf_out),0);
lstrcpy(page_text,"");
x=recv(sock,buf_in,sizeof(buf_in)-1,0); //в buf_in должен быть заголовок Content-length,его надо прочитать и превратить в цифру, чтобы потом знать, когда я получу последний символ страницы, чтобы не вызвать левый вызов recv()
while(x>0) //Хотя я как посмотрю, сейчас оно НАХУЙ НЕ НАДО!!!
{
buf_in[x]=0;
lstrcat(page_text,buf_in);
// printf(buf_in);
x=recv(sock,buf_in,sizeof(buf_in)-1,0);
}
closesocket(sock);
FILE* f=fopen("c:\\1.txt","w");
fputs(page_text,f);
fclose(f);
return page_text;
}
char* str_replace(char* source,char* from,char* to)
{
int size=strlen(source)+strlen(from)+strlen(to);
char* str=new char[size];
char left[10000];
char right[10000];
int n=0;
memset(str,0,size);
while(str=strstr(source+n,from))
{
lstrcpyn(left,source,str-source+1);
lstrcpy(right,str+lstrlen(from));
lstrcpy(source,left);
lstrcat(source,to);
lstrcat(source,right);
n=(DWORD)(str)-(DWORD)(source)+lstrlen(to);
}
return source;
}
канпилируейте ))) а кому впадлу канпелировать, вот с исходниками:
http://www.viptest.msk.ru/other/phone_money.rar
хек ;)
Короче я этот процесс весь автоматизировал ) Вот выкладываю программку, которая все делает за вас. Можете поставить ее на запуск раз в сутки и больше не париться :)
Как работает: просто запустите из командной строки phone_money.exe и получите пояснения с какими параметрами запускать и пример.
Еще... Во время работы программы, будут мелькать различные хттп-запросы, заголовки. и время от времени программа будет на минуту (60 сек!!!!) "зависать". Так вот это она не зависает, и просто ждет минуту (Sleep(60000);). Там по правилам сайта, который эту халяву предоставляет так надо. Впадлу рассказывать, если интересно попробуйте через броузер получить деньги и поймете. Короче как программа "зависнет", не беспокойтесь! все нормально!
//by je0n je0n@inbox.ru
//Greetz: Great,groundhog,el' спасибо Вам большое, очень сильно помогли в коде. хотя, 100 пудов, и не знали для чего помогали )
#include <iostream>
#include <stdio.h>
#include <winsock2.h>
#include <string.h>
#include <time.h>
char* GETRequest(char*,char*);
char* POSTRequest(char*,char*,char*,char*);
char* str_replace(char*,char*,char*);
int main(int argc, char* argv[])
{
if(argc>2)
{
char hidden[1000];
char phone[15];
bool b;
char opsos[10];
char cookie[200];
char location[200];
char post[1000];
char p[50000];
int i;
int n,start,finish;
for(i=0;i<3;i++)
{
b=true;
while(b)
{
lstrcpy(p,GETRequest("izobilnik.ru","/random11.aspx"));
n=(int)(strstr(p,"Cookie: ")-(DWORD)p); //получаем куки
start=n+8;
finish=(int)(strstr(p+start,"\r\n")-(DWORD)(p+start))+1;
lstrcpyn(cookie,p+start,finish);
printf("\r\n");
printf(cookie);
n=(int)(strstr(p,"__")-(DWORD)p);
start=n+20;
finish=(int)(strstr(p+start,"\"")-(DWORD)(p+start))+1;
lstrcpyn(hidden,p+start,finish); //в хиден ебошим скрытое поле с именем __VIEWSTATE
str_replace(hidden,"+","%2B");
// printf(hidden);
//Составляем POST-запрос для random11.aspx
lstrcpy(phone,argv[1]);
lstrcpy(opsos,argv[2]);
lstrcpy(post,"TextBox2=");
lstrcat(post,phone);
lstrcat(post,"&ddl=");
lstrcat(post,opsos);
lstrcat(post,"&rbl1=1&");
lstrcat(post,"__VIEWSTATE=");
lstrcat(post,str_replace(hidden,"=","%3D"));
lstrcat(post,"&ImageButton1.x=50&ImageButton1.y=30");
printf("\r\n");
printf(post);
printf("\r\n");
lstrcpy(p,POSTRequest("izobilnik.ru","/random11.aspx",post,cookie));
printf(p);
//СОСТАВЛЯЕМ ЗАПРОС ДЛЯ ПРОВЕРКИ НОМЕРА в random12.aspx
Sleep(60000); //спим, чтобы прошла минута, по правилам сайта
lstrcpy(p,GETRequest("izobilnik.ru","/random12.aspx"));
n=(int)(strstr(p,"Cookie: ")-(DWORD)p); //получаем куки
start=n+8;
finish=(int)(strstr(p+start,"\r\n")-(DWORD)(p+start))+1;
lstrcpyn(cookie,p+start,finish);
printf("\r\n");
printf(cookie); //Вот эти кукисы нужно подставить в POST-запрос в /random13.aspx
n=(int)(strstr(p,"__")-(DWORD)p);
start=n+20;
finish=(int)(strstr(p+start,"\"")-(DWORD)(p+start))+1;
lstrcpyn(hidden,p+start,finish); //в хиден ебошим скрытое поле с именем __VIEWSTATE
str_replace(hidden,"+","%2B");
//Составляем POST-запрос для random12.aspx
lstrcpy(post,"TextBox2=");
lstrcat(post,phone);
lstrcat(post,"&__VIEWSTATE=");
lstrcat(post,str_replace(hidden,"=","%3D"));
lstrcat(post,"&ImageButton1.x=55&ImageButton1.y=34");
printf("\r\n");
printf(post);
printf("\r\n");
lstrcpy(p,POSTRequest("izobilnik.ru","/random12.aspx",post,cookie));
printf(p);
//Из переменной p выстаскиваем заголовок Location: Если Location=random13.aspx, то делаем POST-запрос к random13.aspx с ранее полученными куками, иначе болты и начинаем все сначала
n=(int)(strstr(p,"Location: ")-(DWORD)p); //получаем Location:
start=n+10;
finish=(int)(strstr(p+start,"\r\n")-(DWORD)(p+start))+1;
lstrcpyn(location,p+start,finish);
if(lstrcmp(location,"/random13.aspx")==0) //если в условии, то все заебато, и составляем последний post-запрос
{
lstrcpy(p,GETRequest("izobilnik.ru","/random13.aspx"));
n=(int)(strstr(p,"__")-(DWORD)p);
start=n+20;
finish=(int)(strstr(p+start,"\"")-(DWORD)(p+start))+1;
lstrcpyn(hidden,p+start,finish); //в хиден ебошим скрытое поле с именем __VIEWSTATE
str_replace(hidden,"+","%2B");
lstrcpy(post,"__VIEWSTATE=");
lstrcat(post,str_replace(hidden,"=","%3D"));
lstrcat(post,"&ImageButton1.x=91&ImageButton1.y=20");
printf("\r\n");
printf(post);
lstrcpy(p,POSTRequest("izobilnik.ru","/random13.aspx",post,cookie));
printf(p);
b=false;
printf("\r\nUGADAL\r\n");
}
else
{
printf("\r\nne ugadal\r\n");
Sleep(3000);
}
}
}
}
else
{
printf("\r\nfirst argument is your phone;\r\nsecond argument is number of operator:\r\n11-MTS\r\n12-Megafon-Moskva;\r\n14-Megafon-Centr;\r\n15-Megafon Dal'nii Vostok\r\n16-Megafon-Kavkaz\r\n17-Megafon-Povolgie\r\n18-Megafon Severo-Zapad\r\n19-Megafon-Sibir'\r\n20-Megafon Ural\r\n21-BashCell\r\n22-NSS\r\n23-Sotel-SSB\r\n24-TatinCom\r\n25-Tele2\r\n26-Utel\r\n====Example:====\r\nphone_money.exe 9081856542 25\r\n");
}
return 0;
}
char* GETRequest(char* server,char* page)
{
WSADATA sock_info;
int err=WSAStartup(MAKEWORD(2,0),&sock_info);
if(err==SOCKET_ERROR)
{
printf("WSAStartup error");
return 0;
}
int sock;
struct sockaddr_in sa;
struct hostent* h;
char page_text[50000];
char buf_in[10];
char buf_out[500];
int x;
sa.sin_family=AF_INET;
sa.sin_port=htons(80);
h=gethostbyname(server);
memcpy(&sa.sin_addr,h->h_addr_list[0],h->h_length);
sock=socket(AF_INET,SOCK_STREAM,0);
if(connect(sock,(sockaddr*)&sa,sizeof(sa))<0)
{
printf("connect() error");
return 0;
}
lstrcpy(buf_out,"GET "); //Составляем GET-запрос
lstrcat(buf_out,page);
lstrcat(buf_out," HTTP/1.0\r\n");
send(sock,buf_out,lstrlen(buf_out),0);
lstrcpy(buf_out,"Host: izobilnik.ru\r\n");
send(sock,buf_out,lstrlen(buf_out),0);
lstrcpy(buf_out,"Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, */*\r\n"); //заголовок Accept:
send(sock,buf_out,lstrlen(buf_out),0);
lstrcpy(buf_out,"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)\r\n\r\n"); //заголовок User-Agent:
send(sock,buf_out,lstrlen(buf_out),0);
lstrcpy(page_text,"");
x=recv(sock,buf_in,sizeof(buf_in)-1,0); //в buf_in должен быть заголовок Content-length,его надо прочитать и превратить в цифру, чтобы потом знать, когда я получу последний символ страницы, чтобы не вызвать левый вызов recv()
while(x>0) //Хотя я как посмотрю, сейчас оно НАХУЙ НЕ НАДО!!!
{
buf_in[x]=0;
lstrcat(page_text,buf_in);
// printf(buf_in);
x=recv(sock,buf_in,sizeof(buf_in)-1,0);
}
closesocket(sock);
return page_text;
}
char* POSTRequest(char* server,char* page,char * request,char* cookie)
{
WSADATA sock_info;
int err=WSAStartup(MAKEWORD(2,0),&sock_info);
if(err==SOCKET_ERROR)
{
printf("WSAStartup error");
return 0;
}
int sock;
struct sockaddr_in sa;
struct hostent* h;
char page_text[50000];
char buf_in[10];
char buf_out[1000];
int x;
sa.sin_family=AF_INET;
sa.sin_port=htons(80);
h=gethostbyname(server);
memcpy(&sa.sin_addr,h->h_addr_list[0],h->h_length);
sock=socket(AF_INET,SOCK_STREAM,0);
if(connect(sock,(sockaddr*)&sa,sizeof(sa))<0)
{
printf("connect() error");
return 0;
}
lstrcpy(buf_out,"POST "); //Составляем POST-запрос
lstrcat(buf_out,page);
lstrcat(buf_out," HTTP/1.0\r\n");
send(sock,buf_out,lstrlen(buf_out),0);
lstrcpy(buf_out,"Host: izobilnik.ru\r\n"); //Заголовок HOST
send(sock,buf_out,lstrlen(buf_out),0);
lstrcpy(buf_out,"Content-Type: application/x-www-form-urlencoded\r\n"); //заголовок Content-Type
send(sock,buf_out,lstrlen(buf_out),0);
// lstrcpy(buf_out,"Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, */*\r\n"); //заголовок Accept:
// printf(buf_out);
// send(sock,buf_out,lstrlen(buf_out),0);
// lstrcpy(buf_out,"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)\r\n"); //заголовок User-Agent:
// printf(buf_out);
// send(sock,buf_out,lstrlen(buf_out),0);
x=lstrlen(request);
lstrcpy(buf_out,"Content-Length: "); //Загловок Content-Length
lstrcat(buf_out,itoa(x,buf_in,10));
lstrcat(buf_out,"\r\n");
send(sock,buf_out,lstrlen(buf_out),0);
lstrcpy(buf_out,"Cookie: "); //заголовок Cookie:
lstrcat(buf_out,cookie);
lstrcat(buf_out,"\r\n\r\n");
send(sock,buf_out,lstrlen(buf_out),0);
lstrcpy(buf_out,request); //POST-запрос
lstrcat(buf_out,"\r\n");
send(sock,buf_out,lstrlen(buf_out),0);
lstrcpy(page_text,"");
x=recv(sock,buf_in,sizeof(buf_in)-1,0); //в buf_in должен быть заголовок Content-length,его надо прочитать и превратить в цифру, чтобы потом знать, когда я получу последний символ страницы, чтобы не вызвать левый вызов recv()
while(x>0) //Хотя я как посмотрю, сейчас оно НАХУЙ НЕ НАДО!!!
{
buf_in[x]=0;
lstrcat(page_text,buf_in);
// printf(buf_in);
x=recv(sock,buf_in,sizeof(buf_in)-1,0);
}
closesocket(sock);
FILE* f=fopen("c:\\1.txt","w");
fputs(page_text,f);
fclose(f);
return page_text;
}
char* str_replace(char* source,char* from,char* to)
{
int size=strlen(source)+strlen(from)+strlen(to);
char* str=new char[size];
char left[10000];
char right[10000];
int n=0;
memset(str,0,size);
while(str=strstr(source+n,from))
{
lstrcpyn(left,source,str-source+1);
lstrcpy(right,str+lstrlen(from));
lstrcpy(source,left);
lstrcat(source,to);
lstrcat(source,right);
n=(DWORD)(str)-(DWORD)(source)+lstrlen(to);
}
return source;
}
канпилируейте ))) а кому впадлу канпелировать, вот с исходниками:
http://www.viptest.msk.ru/other/phone_money.rar
хек ;)