Пытаюсь залогинится на майл.ру через сокеты ... а мне пишет php_network_getaddresses: getaddrinfo failed: No such host is known отсылаю данные на win.mail.ru/cgi-bin/auth как быть? с остальными адресами всё ок
Проблема в том что я использую класс ... =\ Но он всегда нормално работал иммено с эим адрессом у него поблемы
To emulate a web browser with PHP using socket functions, there is a very good class to do this: http://sourceforge.net/projects/snoopy/ Some of its features: * easily fetch the contents of a web page * easily fetch the text from a web page (strip html tags) * easily fetch the the links from a web page (add a filter for "mailto:" links and you can easily fetch e-mail addresses). * supports proxy hosts * supports basic user/pass authentication * supports setting user_agent, referer, cookies and header content * supports browser redirects, and controlled depth of redirects * expands fetched links to fully qualified URLs (default) * easily submit form data and retrieve the results * supports SSL and frames
Есть, все там норм...куки дает. вот: PHP: <? define("_HOST","win.mail.ru"); // Имя Хоста, куда конектимся. define("_LPAGE","/cgi-bin/auth"); // Имя скрипта на котором происходит авторизация define("_PORT",80); // Порт на котороый конектимся function Prepare_POST_array($arr) { $out = ""; foreach($arr as $key => $line) { if($out == "") $out .= $key."=".urlencode($line); else $out .= "&".$key."=".urlencode($line); } return $out."\r\n\r\n"; } function post_query($path, $param, $AnswerFlag = true) { if(!$param || !is_array($param) || !$path) return false; $data = Prepare_POST_array($param); $fp = fsockopen(_HOST, _PORT, $errno, $errstr, 30); if(!$fp) return false; $out = "POST ".$path." HTTP/1.1\r\n"; $out .= "Host: "._HOST."\r\n"; $out .= "Content-Type: application/x-www-form-urlencoded; charset=windows-1251\r\n"; $out .= "Content-Length: ".strlen($data)."\r\n"; $out .= "User-Agent: Opera/9.27 (Windows NT 5.1; U; ru)\r\n"; $out .= "Connection: Close\r\n\r\n"; $out .= $data; fwrite($fp, $out); if($AnswerFlag) { while (!feof($fp)) { $answer[] = fgets($fp, 1024); } } else $answer = true; fclose($fp); return $answer; } $array = array( "Login" => "LOGIN", "Domain" => "mail.ru", "Password" => "PASS", "page" => "", "post" => "", "login_from" => "", ); $ans = post_query(_LPAGE,$array); print_r($ans); ?>