ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |

16.05.2010, 23:52
|
|
Участник форума
Регистрация: 01.04.2008
Сообщений: 200
Провел на форуме: 1059196
Репутация:
39
|
|
C++ работа с прокси
Здравствуйте.
Я пытаюсь отправлять GET запросы через HTTP прокси, однако в результате вместо содержимого нужного сайта получаю ошибку HTTP 301 Moved
PHP код:
char *GetQueryFromProxy( char *url, char *proxyhost, char *proxyport, char *Cookie )
{
char fulurl[512] = "";
sprintf( fulurl, url);
if (memcmp(url,"HTTP://",7)!=0 && memcmp(url,"http://",7)!=0)
{
return NULL;
}
url+=7;
// Ïîëó÷èì èìÿ õîñòà, íîìåð ïîðòà è ïóòü ----------------------------
char *http_host=strdup(url); // Èìÿ õîñòà (HTTP_HOST)
int port_num; // Íîìåð ïîðòà ïî óìîë÷àíèþ (HTTP_PORT)
char *http_path=NULL; // Ïóòü (REQUEST_URI)
char *pch=strchr(http_host,':');
if (!pch)
{
pch=strchr(http_host,'/');
if (pch)
{
*pch=0;
http_path=strdup(pch+1);
}
else
{
http_path=strdup("");
}
}
else
{
*pch=0;pch++;
char *pch1 = strchr(pch,'/');
if (pch1)
{
*pch1=0;
http_path=strdup(pch1+1);
}
else http_path=strdup("");
}
port_num = atoi(proxyport);
if (port_num==0)
{
port_num = 80;
}
WSADATA wsaData;
WSAStartup(MAKEWORD(2,2), &wsaData);
SOCKET name_sock;
name_sock=socket ( AF_INET, SOCK_STREAM, IPPROTO_TCP );
sockaddr_in dest_addr;
dest_addr.sin_family=AF_INET;
dest_addr.sin_port=htons ( port_num );
dest_addr.sin_addr.s_addr = resolve(proxyhost);
int server_addr_size = sizeof(dest_addr);
if( connect(name_sock, (sockaddr*)&dest_addr, sizeof(dest_addr)) == -1 )
{
closesocket(name_sock );
WSACleanup();
return NULL;
}
else
{
char query[2048];
strcpy(query,"GET ");
strcat(query,fulurl);
strcat(query," HTTP/1.1\r\nHost: ");
strcat(query,http_host);
strcat(query,"\r\nUser-agent: Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
strcat(query,"\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
strcat(query,"\r\nAccept-Language: ru,en-us;q=0.7,en;q=0.3");
strcat(query,"\r\nAccept-Encoding: gzip,deflate");
strcat(query,"\r\nAccept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7");
strcat(query,"\r\nKeep-Alive: 115");
strcat(query,"\r\nProxy-Connection: keep-alive");
if( Cookie )
{
strcat(query,"\r\nCookie: ");
strcat(query,Cookie);
}
strcat(query,"\r\n\r\n");
// Send the magic http request
if (send(name_sock, query, strlen(query), 0) == SOCKET_ERROR)
{
closesocket(name_sock );
WSACleanup();
return NULL;
}
}
int nNumRead;
int otvetsize;
char otvet[40960];
otvetsize = 40960;
nNumRead = recv(name_sock, otvet, otvetsize, 0);
closesocket(name_sock );
WSACleanup();
return otvet;
}
|
|
|

16.05.2010, 23:56
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
Код:
if (memcmp(url,"HTTP://",7)!=0 && memcmp(url,"http://",7)!=0)
{
return NULL;
}
Это просто пздц. А если я напишу Http:// то облом будет. Юзай memicmp
А вообще HTTP 301 Moved
значит страница перенесена и в Location указан адрес куда перейти тебе нужно
|
|
|

17.05.2010, 00:00
|
|
Участник форума
Регистрация: 01.04.2008
Сообщений: 200
Провел на форуме: 1059196
Репутация:
39
|
|
В том то и дело, что через браузер работает, а через мой код всегда ошибка 301 с ссылкой на введенный сайт
|
|
|

17.05.2010, 00:05
|
|
Познавший АНТИЧАТ
Регистрация: 01.12.2006
Сообщений: 1,769
Провел на форуме: 3718311
Репутация:
1118
|
|
в заголовках в поле Location что ? (по стопам slesh)
|
|
|

17.05.2010, 00:09
|
|
Участник форума
Регистрация: 01.04.2008
Сообщений: 200
Провел на форуме: 1059196
Репутация:
39
|
|
Вот попытка запроса сайта http://google.ru
Код:
HTTP/1.1 301 Moved Permanently
Accept-Encoding: identity
Connection: close
Location: http://www.google.ru/
Content-Type: text/html; charset=UTF-8
Date: Sun, 16 May 2010 19:46:19 GMT
Expires: Tue, 15 Jun 2010 19:46:19 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 218
X-XSS-Protection: 1; mode=block
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.ru/">here</A>.
</BODY></HTML>
|
|
|

17.05.2010, 00:11
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.03.2008
Сообщений: 670
Провел на форуме: 4137635
Репутация:
2407
|
|
Потому что обращаться надо к http://www.google.ru/
|
|
|

17.05.2010, 00:28
|
|
Участник форума
Регистрация: 01.04.2008
Сообщений: 200
Провел на форуме: 1059196
Репутация:
39
|
|
Ок, точно
спасибо всем за помощь
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|