если вы видите этот текст, отключите в настройках форума использование JavaScript
Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания .
Новичкам также крайне полезно ознакомиться с данным документом .
вот ещё бы алгоритм шифрования подкинул бы ктонить 18.12.01 13:16 Число просмотров: 1226
Автор: YURICH Статус: Незарегистрированный пользователь
<programming >
[Net] Авторизация на MS Proxy 16.12.01 13:38
Автор: YURICH Статус: Незарегистрированный пользователь
Как авторизоваться на MS Proxy server?
т.е. какой запрос надо дать серваку?
nichego ne ponyatno. popodrobnee opishi 17.12.01 00:55
Автор: kabanchik Статус: Незарегистрированный пользователь
nichego ne ponyatno. popodrobnee opishi 17.12.01 09:21
Автор: YURICH Статус: Незарегистрированный пользователь
Объясняю подробнее:
открываю я значит сокет с проксиком и перед тем как сказать ему GET мне такую-то страничку, я должен авторизоваться...
дык вот что ему нужно послать для этого...
слышал про какую-то байсик-авторизацию...
nichego ne ponyatno. popodrobnee opishi 17.12.01 15:06
Автор: XR <eXtremal Research> Статус: The Elderman
> Объясняю подробнее: > открываю я значит сокет с проксиком и перед тем как сказать > ему GET мне такую-то страничку, я должен авторизоваться... > дык вот что ему нужно послать для этого... > слышал про какую-то байсик-авторизацию...
Авторизация идет не перед а прямо в GET запросе (каждом)
как отдельное поле HTTP заголовка
вот пример HTTP запроса:
GET http://www.server.com HTTP/1.1
Proxy-Authorization: Basic <user:pass - закодированные в base64>
- скобок <> разумеется не нужно
вот ещё бы алгоритм шифрования подкинул бы ктонить 18.12.01 13:16
Автор: YURICH Статус: Незарегистрированный пользователь
вот ещё бы алгоритм шифрования подкинул бы ктонить 18.12.01 15:37
Автор: XR <eXtremal Research> Статус: The Elderman
Вот кусок из oops на эту тему
#define BASE64_VALUE_SZ 256
int base64_value[BASE64_VALUE_SZ];
unsigned char alphabet[64] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
void
base_64_init()
{
int i;
for (i = 0; i < BASE64_VALUE_SZ; i++)
base64_value[i] = -1;
for (i = 0; i < 64; i++)
base64_value[(int) alphabet[i]] = i;
base64_value['='] = 0;
}
char*
base64_encode(char *src) {
int bits, char_count, len;
char *res, *o_char, *lim, *o_lim;
unsigned char c;
if ( !src ) return(NULL);
len = strlen(src);
lim = src+len;
res = xmalloc((len*4)/3+4, "base64_encode(): 1");
if ( !res )
return(NULL);
o_char = res;
o_lim = res + (len*4)/3 + 1 ;
char_count = 0;
bits = 0;
while ( (src < lim) && (o_char < o_lim) ) {
c = *(src++);
bits += c;
char_count++;
if (char_count == 3) {
*(o_char++) = alphabet[bits >> 18];
*(o_char++) = alphabet[(bits >> 12) & 0x3f];
*(o_char++) = alphabet[(bits >> 6) & 0x3f];
*(o_char++) = alphabet[bits & 0x3f];
bits = 0;
char_count = 0;
} else {
bits <<= 8;
}
}
if (char_count != 0) {
bits <<= 16 - (8 * char_count);
*(o_char++) = alphabet[bits >> 18];
*(o_char++) = alphabet[(bits >> 12) & 0x3f];
if (char_count == 1) {
*(o_char++) = '=';
*(o_char++) = '=';
} else {
*(o_char++) = alphabet[(bits >> 6) & 0x3f];
*(o_char++) = '=';
*(o_char) = 0;
}
}
return(res);
}
char *
base64_decode(char *p)
{
char *result;
int j;
unsigned int k;
int c, base_result_sz;
long val;
if (!p)
return NULL;
base_result_sz = strlen(p);
result = xmalloc(base_result_sz+1,"base64_decode(): 1");
val = c = 0;
for (j = 0; *p && j + 3 < base_result_sz; p++) {
k = (int) *p % BASE64_VALUE_SZ;
if (base64_value[k] < 0)
continue;
val <<= 6;
val += base64_value[k];
if (++c < 4)
continue;
result[j++] = (char) (val >> 16);
result[j++] = (val >> 8) & 0xff;
result[j++] = val & 0xff;
val = c = 0;
}
result[j] = 0;
return result;
}
---