| |
|
|
| | обратится как браузер к интернету через прокси сервер
почитал форум и сделал так
fp = @fsockopen("tcp://192.168.10.2", 8080, $errno, $errstr, 10);
if (!$fp) {
return false;
} else {
$out = "GET http://www.lme.co.uk/dataprices_daily_metal.asp HTTP/1.1\r\n";
$out .= "Host: lme.co.uk\r\n";
$out .= "Referer: lme.co.uk\r\n";
$out .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n";
$out .= "Connection: Close\r\n";
$out .= "\r\n";
fwrite($fp, $out);
if($get)
{
while (!feof($fp)) {
$buffer .= fgets($fp, 1024);
}
}
fclose($fp);
}
echo $buffer;
|
но говорит таймаут вышел
и если можно разъясните мне что означает
GET - куда посылать запрос?
Host:
Referer | |
| |
|
|
| |
|
|
| |
для: himic
(02.06.2006 в 09:30)
| | | "tcp://192.168.10.2" - тут нужен только IP-адрес "192.168.10.2" - порт вы указываете вторым параметром, поэтому схема "tcp://" не нужна.
Строку
<?php
$out = "GET http://www.lme.co.uk/dataprices_daily_metal.asp HTTP/1.1\r\n";
?>
|
следует исправить на
<?php
$out = "GET /dataprices_daily_metal.asp HTTP/1.1\r\n";
?>
|
| |
| |
|
|
| |
|
|
| |
для: himic
(02.06.2006 в 09:30)
| | |
<?
fp = @fsockopen("tcp://192.168.10.2", 8080, $errno, $errstr, 10);
?>
|
Вместо 10 поставь поболее и будет тайм айт больше | |
| |
|
|
| |
|
|
| |
для: mihdan
(02.06.2006 в 12:13)
| | | Спасибо мужики!!!!!!!!!!
Достучался я до прокси сервера дал он мне ответ
но проблема, он то по идее должен спрашивать авторизацию, а он не может её запросить и выводит
Network Access Message: The page cannot be displayed
Explanation: There is a problem with the page you are trying to reach and it cannot be displayed.
Try the following:
Refresh page: Search for the page again by clicking the Refresh button. The timeout may have occurred due to Internet congestion.
Check spelling: Check that you typed the Web page address correctly. The address may have been mistyped.
Access from a link: If there is a link to the page you are looking for, try accessing the page from that link.
If you are still not able to view the requested page, try contacting your administrator or Helpdesk.
Technical Information (for support personnel)
Error Code: 502 Proxy Error. The Uniform Resource Locator (URL) does not use a recognized protocol. Either the protocol is not supported or the request was not typed correctly. Confirm that a valid protocol is in use (for example, HTTP for a Web request). (12006)
IP Address: 192.168.10.2
Date: 10/3/2005 9:11:13 AM
Server: lead.kz
Source: proxy
|
Я уверен что как то можно спросить авторизацию
браузер же посылает данные авторизации | |
| |
|
|
| |
|
|
| |
для: himic
(02.06.2006 в 13:22)
| | | Я тут уже приводил пример авторизации на сокетах, как прокси, так и Basic на сайте.
Во первых верни в строку GET полный URL прокси некоторые не смогут по директиве host определить правильно страницу.
Во вторых, авторизация прокси идет предпоследней строкой, а авторизация Basic идет последней строкой (если нет POST данных при методе POST).
$out .= "Proxy-Authorization: Basic " . base64_encode("LoginTvoy:PasswordTvoy") . "\r\n";
$out .= "Authorization: Basic " . base64_encode("LoginTvoy:PasswordTvoy") . "\r\n";
$out .= "\r\n";
|
| |
| |
|
|
| |
|
|
| |
для: XPraptor
(02.06.2006 в 15:30)
| | | Вы сказали что авторизация должна происходить предпоследней строкой
это значит после строки идентификации браузера
сделал
выдаёт
1HTTP/1.1 502 Proxy Error ( The Uniform Resource Locator (URL) does not use a recognized protocol. Either the protocol is not supported or the request was not typed correctly. Confirm that a valid protocol is in use (for example, HTTP for a Web request). ) Via: 1.1 WWW Connection: close Proxy-Connection: close Pragma: no-cache Cache-Control: no-cache Content-Type: text/html Content-Length: 4203
|
| |
| |
|
|
| |
|
|
| |
для: himic
(05.06.2006 в 06:57)
| | | А как сейчас у вас выглядит скрипт? | |
| |
|
|
| |
|
|
| |
для: cheops
(05.06.2006 в 09:49)
| | |
<?
$fp = @fsockopen("192.168.10.2", 8080, $errno, $errstr, 30);
$out = "GET lme.co.uk/dataprices_daily_metal.asp HTTP/1.1\r\n";
$out .= "Host: lme.co.uk\r\n";
$out .= "Referer: lme.co.uk\r\n";
$out .= "Authorization: Basic ".base64_encode("ant:пароль") . "\r\n";
//$out .= "Proxy-Authorization: Basic " . base64_encode("ant:пароль") . "\r\n";
$out .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n";
$out .= "Connection: Close\r\n";
$out .= "\r\n";
fwrite($fp, $out);
if($get)
{
while (!feof($fp)) {
$buffer .= fgets($fp, 1024);
}
}
fclose($fp);
}
echo $buffer;
?>
|
| |
| |
|
|
| |
|
|
| |
для: himic
(05.06.2006 в 10:31)
| | | Не нужно указывать имя хоста lme.co.uk в параметре GET - он принимает путь от корня хоста
<?
$fp = @fsockopen("192.168.10.2", 8080, $errno, $errstr, 30);
$out = "GET /dataprices_daily_metal.asp HTTP/1.1\r\n";
$out .= "Host: lme.co.uk\r\n";
$out .= "Referer: lme.co.uk\r\n";
$out .= "Authorization: Basic ".base64_encode("ant:пароль") . "\r\n";
//$out .= "Proxy-Authorization: Basic " . base64_encode("ant:пароль") . "\r\n";
$out .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n";
$out .= "Connection: Close\r\n";
$out .= "\r\n";
fwrite($fp, $out);
if($get)
{
while (!feof($fp)) {
$buffer .= fgets($fp, 1024);
}
}
fclose($fp);
}
echo $buffer;
?>
|
| |
| |
|
|
| |
|
|
| |
для: cheops
(05.06.2006 в 10:46)
| | | а у меня по-разному было
поставил как ты говоришь, всё также
меня вот эта строка в ошибке смущает
Proxy Error ( The Uniform Resource Locator (URL)
|
| |
| |
|
|
| |
|
|
| |
для: himic
(05.06.2006 в 10:58)
| | | Хм... попробуйте ещё заменить HTTP 1.1 на HTTP 1.0 - многие прокси не поддерживают более новую версию протокола... хотя вряд ли в этом дело... А через браузер этот прокси нормально работает? | |
| |
|
|
| |
|
|
| |
для: cheops
(05.06.2006 в 12:44)
| | | Химик, кончай издеваться. Делай как я сказал. Полный путь вместе с http в первой строке (какой протокол будет прокси использовать для запроса твоей страницы, если ты не указал его) строки автоизации прокси предпоследняя, авторизация обычная последняя и после нее двойной первод строки. Как сказал cheops, на всякий случай протокол HTTP/1.0 прокси действительно может не поддерживать 1.1 или в браузере галочка не стоять "использовать для прокси HTTP/1.1" | |
| |
|
|
| |
|
|
| |
для: XPraptor
(05.06.2006 в 14:11)
| | | И такую и другую авторизацию пробовал
выдаёт
1HTTP/1.1 407 Proxy Authentication Required ( The ISA Server requires authorization to fulfill the request. Access to the Web Proxy service is denied. ) Via: 1.1 WWW Proxy-Authenticate: Negotiate Proxy-Authenticate: Kerberos Proxy-Authenticate: NTLM Connection: Keep-Alive Proxy-Connection: Keep-Alive Pragma: no-cache Cache-Control: no-cache Content-Type: text/html Content-Length: 4099
|
| |
| |
|
|
| |
|
|
| |
для: himic
(06.06.2006 в 07:39)
| | | Так у вас прокси авторизации требует? Т.е. не свободного доступа? | |
| |
|
|
| |
|
|
| |
для: cheops
(06.06.2006 в 11:16)
| | | Так точно! ИСОЙ зовётся
если из браузера обращаешься, то вылазиет авторизация
а для аськи устанавливаем Starts Firewall Client Management for ISA Server | |
| |
|
|
| |
|
|
| |
для: himic
(06.06.2006 в 15:03)
| | | Авторизация базовая? | |
| |
|
|
| |
|
|
| |
для: cheops
(06.06.2006 в 19:34)
| | | роворят базовая, а какая нужна?
Почитал я тут http://www.internetaccessmonitor.ru/rus/support/docs/isaserver/FW_AuthenticationOver.php
Таким образом, когда клиент запрашивает данные по протоколу HTTP, идентификационная информация не передается на сервер ISA Server до тех пор, пока ISA Server не запросит ее. Это происходит, когда брандмауэр может разрешить доступ только после идентификации пользователя.
Такие запросы обрабатываются сервером ISA Server как поступившие от неидентифицированного пользователя. Если ISA Server не может передавать запросы от неидентифицированных пользователей, такой запрос будет отклонен, потому что ISA Server не потребует идентификации. | |
| |
|
|
| |
|
|
| |
для: himic
(07.06.2006 в 08:20)
| | | Как она внешне выглядит? Окошко вылазит поверх страницы? | |
| |
|
|
| |
|
|
| |
для: cheops
(07.06.2006 в 11:53)
| | | Так точно, при попытку обратится к интернету
вылазит окошко на авторизацию | |
| |
|
|
|
| |
|
|
| |
для: cheops
(07.06.2006 в 12:29)
| | | Не, раз на ISA запрещена авторизация другими пользователями, то нужно именно сначала авторизироваться как пользователь windows, а потом уже авторизацию проксе посылать.
Такс, тут проблемка у нас возникла. Не знаю я как на PHP послать авторизацию пользователя windows. На VB или C++ легко авторизируюсь, а вот через PHP - надо подумать как заюзать COM объекты винды для kerberos.
Надо мануал на php.net порыть, вроде видел я там функции по авторизации в винде. | |
| |
|
|
| |
|
|
| |
для: XPraptor
(07.06.2006 в 16:52)
| | | Блин братва, как я вым благодарен, особенно за помощь с авторизацией
если бы не вы то пришлось все цены с LME забивать вручную
а теперь вот полюбуйтесь! как к вашему сайту обращается :) http://lead.kz/tpl/proxy.php
Ура товарищи! По этой теме бы статейку чиркануть | |
| |
|
|