Posted by: НиФи... on October 11, 2001 at 21:57:46
Posters Details: [138.38.32.27] [138.38.32.27], X-Forwarded 4: [172.21.16.251]
[Mozilla/4.0 (compatible; MSIE 5.0; Windows 98) Opera 5.11 [ru]]
In Reply to: Че-то я не понял про HTTPort...
Posted by: Heromantor on October 11, 2001 at 21:36:24
: Вот прочитал что было запостино...
: И че-то не догоняю как это работать через цепочку из 2-х HTTP проксей? Т.е. как я понял 1й прокси конектиться ко 2му а второй уже к серверу?
Да. именно так.
Так т.е. в логах 2-го IP первого HTTP proxy? Как енто так реализуеться? Примерчик запроса если можно...
Пример в упрощенном виде:
посылаем пакеты на прокси сервер.
В самом пакете указываем второстепенный прокси к которому нужно подконнектиться, а также адрес, который этот проксик должен забрать и отдать на первый прокси.
Я как-то прокси чекер писал, вот и примерчик:
#!/usr/local/bin/perl
############################################################
# Simple ProxyChecker
############################################################
# Configuration
#
# Your proxy server
$host="127.0.0.1";
#
# Host page is asked from
$host1="www.uinc.ru";
#
# Proxy Port
$port="3126";
#
# Web Page to retrieve
$path="http://www.uinc.ru/index.html";
############################################################
print <<END;
Content-Type: text/html\n\n
<html>
<style></style>
<head>
<title>Proxy Checker</title>
</head>
<body>
<b>ProxyChecker</b><p>
END
############################################################
print "Proxy: $host<br>\n";
print "Port: $port<br>\n";
print "Path: $path<br>\n";
print "Host asked to use: $host1<p>\n";
use IO::Socket;
my ($remote) = IO::Socket::INET->new(Proto => "tcp", PeerAddr => $host, PeerPort => $port);
(die "can't connect: $!\n") unless scalar ($remote);
print $remote "GET $path HTTP/1.1\nHost: $host1\nUser-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows NT)\nAccept-Language: ru,en\nAccept-Charset: windows-1251,koi8-r,iso-8859-5,cp866,*\n\n";
my (@lines) = <$remote>;
close $remote;
# Massiv @lines imeet stranichku, kotoruju ti zaprosil...
# print "@lines";
$error="1";
foreach $line (@lines) {
if ( $line =~ /[uinC projects]/ ){
$error="0";
}
}
if ($error == 1){
# Zapuskat programmu otsuda!
print "<b>Error!</b>\n";
}
else {
print "<h3>Proxy Fine!</h3>\n<br>";
}
############################################################
print <<END;
</html></body>
END
############################################################
1;
Follow Ups: