|
|
|
|
|
для: Shorr Kan
(10.02.2005 в 12:05)
| | Наконец-то... получилось вот что:
$url='shadowsecurity.net.ua';
$query = "GET http://shadowsecurity.net.ua/r/checking.shtml HTTP/1.0\r\n
Host: www.site.ru\r\n
Referer: http://www.site.ru/index.html\r\n
Cookie: income=1\r\n
\r\n";
$fp = fsockopen($url, 80);
fputs($fp, $query);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
|
Но возникает вопрос - а почему, собственно, HTTP-REFERER там пустой (на сайте) - я ведь его, вроде, передаю?! | |
|
|
|
|
|
|
|
для: XPraptor
(10.02.2005 в 11:36)
| | Хм. А как же мне увидеть действие того, что я посылаю в заголовках? Если на эти сайты хайти просто так - видны все данные. Я хочу эти данные увидеть такими, какие посылаю... Вроде как, эти сайты длля того и созданы...
Я попробовал создать phpinfo.php - и подключаться к нему... так мне в ответ - not found... Мол, phpinfo не найден.
$path="/phpinfo.php";
$url="mysite.com";
$referer="tttt";
$query = "GET ".$path." HTTP/1.0\r\n";
$query .= "Referer: ".$referer."\r\n\r\n";
$fp = fsockopen($url, 80);
$puts = fputs($fp, $query);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
|
причем в $path пробовал разное... от /www/phpinfo.php до /mysite/www/phpinfo.php | |
|
|
|
|
|
|
|
для: Shorr Kan
(10.02.2005 в 11:18)
| | Это скорее всего дело в настройке сайта. Некоторые сайты проверяют реферер и много чего еще, и если не очень реальные данные гнать, то отказ в доступе. Плюс некоторые проверяют определенные заголовки, такие как дата, язык, кодировка и тоже могут сбойнуть при запросе с пустыми параметрами. | |
|
|
|
|
|
|
|
для: Shorr Kan
(10.02.2005 в 11:07)
| | Попытался на другой сайт проверки данных:
$path="/r/checking.shtml";
$url="shadowsecurity.net.ua";
$referer="tttt";
$query = "GET ".$path." HTTP/1.0\r\n";
$query .= "Referer: ".$referer."\r\n\r\n";
$fp = fsockopen($url, 80);
$puts = fputs($fp, $query);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
|
Выдает какую-то ерунду... Я ведь явно указал http 1.0, а вылезает это:
HTTP/1.1 404 Not Found Date: Thu, 10 Feb 2005 08:15:36 GMT Server: Apache/1.3.29 (Unix) AuthMySQL/2.20 PHP/4.3.4 Last-Modified: Tue, 13 Jan 2004 15:57:34 GMT ETag: "3b58b8-1cc-4004156e" Accept-Ranges: bytes Content-Length: 460 Connection: close Content-Type: text/html BLAZE home. Sorry.
Помогите разобраться, почему на этих сайтах не работает, а на других - все нормально... а то совсем запутался. | |
|
|
|
|
|
|
|
для: Shorr Kan
(10.02.2005 в 10:48)
| | И еще один момент... если leader.ru поменять на ya.ru - все работает. Так в чем же дело? | |
|
|
|
|
|
|
|
для: Shorr Kan
(10.02.2005 в 10:43)
| | Теперь сделал так:
$url="leader.ru";
$referer="tttt";
$query = "GET / HTTP/1.0\r\n\r\n";
$fp = fsockopen($url, 80);
$puts = fputs($fp, $query);
while (!feof($fp)) {
echo fgets($fp, 128);
}
|
Не работает. | |
|
|
|
|
|
|
|
для: XPraptor
(10.02.2005 в 10:30)
| | Спасибо, стало немного понятнее... Но код исправил, а ошибка та же. Код вот:
$path="/secure/who.html";
$url="leader.ru";
$referer="tttt";
$query = "POST $path HTTP/1.0\r\n";
$query .= "Referer: ".$referer."\r\n\r\n";
$fp = fsockopen($url, 80);
$puts = fputs($fp, $query);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
|
Проверил и на локальном, и на сервере. | |
|
|
|
|
|
|
|
для: Shorr Kan
(10.02.2005 в 10:16)
| | to Shorr Kan :
Ты все время одну и ту же ошибку делаешь: вместо перевода и возврата коретки пишешь двойной первод строки: нужно \r\n а ты пишешь \n\n. Это жестко указано в спецификации HTTP. А конец передачи частей (заголовков, тела, пост данных) отделяется двойным переводом и возвратом коретки \r\n\r\n.
Я уже года три работаю с сокетами, правда в C++ и VB, а когда начал писать на PHP то смотрю -а тут теже лыжи просто все через файловые функции вместо прямой передачи. Короче проще-простого.
Да и еще не вздумай запросы послыать HTTP 1.1 только HTTP 1.0 а так сервера не всегда нормально отвечают при 1.1, потому как там еще дополнительные параметры надо передавать. | |
|
|
|
|
|
|
|
для: Shorr Kan
(10.02.2005 в 10:10)
| | Теперь протестировал на сервере. Ответ такой:
HTTP/1.0 400 Bad Request Cache-Control: no-cache Pragma: no-cache Expires: Thu, 01 Jan 1970 00:00:01 GMT Content-Type: text/html Bad formed request or url
Код такой:
$path="/secure/who.html";
$url="leader.ru";
$referer="tttt";
$query = "POST $path HTTP/1.0\n";
$query .= "Referer: ".$referer."\n\n";
$fp = fsockopen($url, 80);
$puts = fputs($fp, $query);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
|
Что касается функции get_contents - описание таковой я пока не нашел... Только file_get_contents | |
|
|
|
|
|
|
|
для: cheops
(10.02.2005 в 09:44)
| | На локальной. Денвер. Но я через локалькную сеть в интернете... Это влияет? | |
|
|
|
|