Code: <?php session_start(); set_time_limit(0); $ajax=isset($_POST['ajax']) ? 1 : 0; $thescript=''; for($tlen=strlen($_SERVER['SCRIPT_NAME']),$i=$tlen-1;$i>=0;$i--) { if($_SERVER['SCRIPT_NAME']{$i}=='/') break; $thescript=$_SERVER['SCRIPT_NAME']{$i}.$thescript; } if(!function_exists('socket_connect')) die("The function socket_connect does not exist! You cannot use this script."); $ver='1.2'; if(!$ajax) { print <<<HERE <html><head> <title>SMS Mail.ru Messenger by DX $ver</title> <style> td { border-width:1px 1px 1px 1px; border-style:solid; border-color:black; } INPUT { BORDER-RIGHT: rgb(50,50,50) 1px outset; BORDER-TOP: rgb(50,50,50) 1px outset; FONT-SIZE: 11px; font-family:Arial; BORDER-LEFT: rgb(50,50,50) 1px outset; BORDER-BOTTOM: rgb(50,50,50) 1px outset; } button { BORDER-RIGHT: rgb(50,50,50) 1px outset; BORDER-TOP: rgb(50,50,50) 1px outset; FONT-SIZE: 10px; BORDER-LEFT: rgb(50,50,50) 1px outset; BORDER-BOTTOM: rgb(50,50,50) 1px outset; width:50px; } textarea { BORDER-RIGHT: rgb(50,50,50) 1px outset; BORDER-TOP: rgb(50,50,50) 1px outset; BORDER-LEFT: rgb(50,50,50) 1px outset; BORDER-BOTTOM: rgb(50,50,50) 1px outset; FONT-SIZE: 13px; font-family:Arial; } select { FONT-SIZE: 10px; background-color:#f4f4ff; } a,a:active,a:visited { background: transparent; color: #34498B; text-decoration: none; font-weight:700; font-size:10; font-family:Arial; background-color:wheat; } a:hover { background: transparent; color: blue; font-weight:700; font-family:Arial; font-size:10; text-decoration: none; background-color:yellow; } </style> </head> <body> <table style="border-width:1px 1px 1px 1px; border-style:solid; border-collapse:collapse; border-color:black; width:100%; height:100%"> <tr><td colspan=2 align=center style="font-size:18;height:10">SMS Mail.ru Messenger By DX $ver</td></tr> <tr valign=top><td><span id="name1">Аккаунты, с которых производить рассылку</span><hr><textarea style="width:500px;height:350px" id="accs"></textarea> <div id="stats" style="display:none;padding:4px;width:500px;height:350;overflow:auto;border-width:1px 1px 1px 1px;border-color:black;border-style:solid;"></div> <br><div id="scrl2" style="display:none;""><input type="checkbox" checked id="scrl"> Авто-скролл логов <br><span id="addstats"></span></div> <br><span id="name2">Впишите аккаунты в таком виде:<br><tt>mail:pass</tt><br>по одному аккаунту в каждой строке.</span></td><td style="width:290">Опции рассылки<hr> <div id="opts"> <a href="#" onclick="chtab(1);return false;">Инфо</a> <a href="#" onclick="chtab(2);return false;">Рассылка</a> <a href="#" onclick="chtab(3);return false;">Сообщение</a> <a href="#" onclick="chtab(4);return false;">Прокси</a> <hr> <div id="tab1"> Данный скрипт позволяет рассылать смс-сообщения по списку номеров, или какое-то число сообщений на конкретный номер. HERE; print '<br'.'><tt'.'>&co'.'py;D'.'X 2'.'008'.'</tt>'; print <<<HERE </div> <div id="tab2" style="display:none"> Задержка со стороны клиента: <input type="text" id="wt" value="0" style="width:50"> ms<br> Задержка со стороны сервера: <input type="text" id="swt" value="2000" style="width:50"> ms<br><br> Тип рассылки:<br> <input type="radio" name="stype" value="1" checked> На номер<br> Номер: <input type="text" id="telnum" value="7xxxxxxxxxx" style="width:90"><br> Отправить <input type="text" id="mnum" value="1" style="width:50"> сообщений<br> <br> <input type="radio" name="stype" value="2"> На список номеров:<br> <textarea style="width:99%" id='telnums' rows=15>7xxxxxxxxxx</textarea> </div> <div id="tab3" style="display:none"> Сообщение:<br> <textarea rows=20 cols=37 id="txtmsg"></textarea> <br><input type="button" onclick="setmes();return false;" value="Установить" id="sbtn"><br> Введите сообщение и нажмите кнопку "Установить".<br> Текущее сообщение:<br> <textarea id="currmsg" rows=5 cols=37 readonly></textarea> <br><input type="checkbox" id="mrnd">Рандомизировать сообщение </div> <div id="tab4" style="display:none"> Список прокси (не обязательно):<br><textarea rows=20 cols=30 id="proxy"></textarea> <br>Прокси-серверы будут циклически меняться для каждого последующего аккаунта. </div> </div> <div id="msproc" style="display:none">Идёт рассылка...</div> </td></tr> <tr><td colspan=2 align=center style="height:20"><input type="button" onclick="startmess()" value="Начать рассылку" id="st"></td></tr> </table> <script language='JavaScript'> var accarr=new Array(); var passarr=new Array(); var ismes=false; var totalaccs; var curracc=0; var k=0; var maxp; var stype; var waittime=1; var servwaittime=1; var nregex=/^\d+$/g; var mmrnd=0; var currid=0; var succmess=0; var nnum=0; var messet=0; var tmpmes=""; var telnum=0; var telnums=Array(); var mnum=0; var numtels=0; var sent=0; var prox=new Array(); var pport=new Array(); var useproxy=false; var k=0; var maxp; function setmes() { messet=0; tmpmes=document.getElementById("txtmsg").value; sendRequest("act=10&msg="+rpl(escape(tmpmes))); document.getElementById("sbtn").disabled=true; } function mes_ok(mlen) { messet=mlen; document.getElementById("sbtn").disabled=false; document.getElementById("currmsg").value=tmpmes; } function chtab(num) { hideTabs(); showTab(num); } function hideTabs() { for(var i=1;i<=4;i++) { document.getElementById("tab"+i).style.display="none"; } } function showTab(num) { document.getElementById("tab"+num).style.display="block"; } function startmess() { if(ismes) { if(!sent && !window.confirm("Вы действительно желаете остановить рассылку?")) { sent=1; return; } ismes=false; document.getElementById("accs").style.display="block"; document.getElementById("st").value="Начать рассылку"; document.getElementById("stats").style.display="none"; document.getElementById("name1").innerHTML="Аккаунты, с которых производить рассылку"; document.getElementById("name2").innerHTML="Впишите аккаунты в таком виде:<br><tt>mail:pass</tt><br>по одному аккаунту в каждой строке."; document.getElementById("msproc").style.display="none"; document.getElementById("opts").style.display="block"; document.getElementById("scrl2").style.display="none"; return; } document.getElementById("accs").value=document.getElementById("accs").value.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); sent=0; curracc=0; accarr=new Array(); passarr=new Array(); waittime=1; currid=0; succmess=0; sloggingin=0; nnum=0; telnum=0; totalaccs=0; numtels=0; prox=new Array(); pport=new Array(); useproxy=false; k=0; mmrnd=document.getElementById("mrnd").checked==true ? 1 : 0; var tmp; var tmp2,cnt2; useproxy=false; stype=getCheckedValue(document.all.stype); if(stype!=1 && stype!=2) { alert("Выберите тип рассылки."); chtab(2); return false; } if(stype==1) { telnum=document.getElementById("telnum").value; if(telnum.search(nregex)==-1 || telnum.length!=11) { alert("Введите правильный номер телефона."); chtab(2); return false; } mnum=document.getElementById("mnum").value; if(mnum.search(nregex)==-1 || mnum<1) { alert("Введите правильное число сообщений для флуда."); chtab(2); return false; } } tmp=document.getElementById("wt").value; if(tmp.search(nregex)==-1) { alert("Введите правильную величину задержки отправки со стороны клиента."); chtab(2); return false; } waittime=Number(tmp)+1; tmp=document.getElementById("swt").value; if(tmp.search(nregex)==-1) { alert("Введите правильную величину задержки отправки со стороны сервера."); chtab(2); return false; } servwaittime=tmp; if(!messet) { alert("Установите сообщение для рассылки."); chtab(3); return false; } if(document.getElementById("accs").value.length==0) { alert("Введите аккаунты для рассылки/проверки."); return false; } tmp=document.getElementById("accs").value.replace(/\\r/g,"").split("\\n"); var cnt=tmp.length; if(cnt==0) { alert("Аккаунты введены в неверном формате."); return false; } for(var i=0;i<cnt;i++) { tmp2=tmp[i].split(":"); cnt2=tmp2.length; if(cnt2<2) { alert("Аккаунты введены в неверном формате."); return false; } for(var t=2;t<cnt2;t++) { tmp2[1]+=":"+tmp2[t]; } if(tmp2[0].length==0 || tmp2[1].length==0) { alert("Аккаунты введены в неверном формате."); return false; } accarr[i]=tmp2[0]; passarr[i]=tmp2[1]; } totalaccs=cnt; if(stype==2) { tmp=document.getElementById("telnums").value; var cnt=tmp.length; if(cnt==0) { alert("Номера введены в неверном формате."); return false; } tmp=tmp.replace(/\\r/g,"").split("\\n"); var cnt=tmp.length; mnum=cnt; for(var i=0;i<cnt;i++) { if(tmp[i].search(nregex)==-1 || tmp[i].length!=11) { alert("Номера введены в неверном формате."); return false; } telnums[i]=tmp[i]; } } if(document.getElementById("proxy").value.length>0) { tmp=document.getElementById("proxy").value.replace(/\\r/g,"").split("\\n"); var cnt=tmp.length; if(cnt==0) { alert("Прокси-серверы введены в неверном формате. Используйте ip:port."); chtab(4); return false; } for(var i=0;i<cnt;i++) { tmp2=tmp[i].split(":"); cnt2=tmp2.length; if(cnt2!=2) { alert("Прокси-серверы введены в неверном формате. Используйте ip:port."); chtab(4); return false; } if(tmp2[0].length==0 || tmp2[1].length==0) { alert("Прокси-серверы введены в неверном формате. Используйте ip:port."); chtab(4); return false; } prox[i]=tmp2[0]; pport[i]=tmp2[1]; } useproxy=true; maxp=cnt; } ismes=true; document.getElementById("accs").style.display="none"; document.getElementById("stats").style.display="block"; document.getElementById("stats").innerHTML=""; document.getElementById("name1").innerHTML="Статус рассылки"; document.getElementById("name2").innerHTML=""; document.getElementById("st").value="Остановить рассылку"; document.getElementById("opts").style.display="none"; document.getElementById("msproc").style.display="block"; document.getElementById("scrl2").style.display="block"; document.getElementById("stats").innerHTML="<font color='red'><b>Старт рассылки сообщений...</b></font><br>"; setStats(0,mnum); setTimeout("goMes()",waittime); } function setStats(curr,total) { var mleft=total-curr; document.getElementById("addstats").innerHTML="Отправлено: "+curr+"; осталось отправить: "+mleft; } function goMes() { if(sent) return; if(stype==2) tnum=telnums[currid]; else tnum=telnum; sendRequest("act=1&rd="+mmrnd+"&telnum="+tnum+"&wt="+servwaittime+"&login="+accarr[curracc]+"&pass="+passarr[curracc],1); changeProxy(); } function nextMes(suc) { if(sent) return; if(suc) { nnum++; currid++ addMes("<font color=green>Успешно отправлено сообщение #"+nnum+"</font><br>"); setStats(nnum,mnum); } curracc++; if(curracc>=totalaccs) curracc=0; if(nnum>=mnum) { finishMes(); return; } setTimeout("goMes()",waittime); } function finishMes() { if(sent) return; addMes("<font color=blue>Всё! Отправлено сообщений: "+nnum+".</font><br>"); sent=1; } function getCheckedValue(radioObj) { if(!radioObj) return ""; var radioLength=radioObj.length; if(radioLength==undefined) if(radioObj.checked) return radioObj.value; else return ""; for(var i=0;i<radioLength;i++) { if(radioObj[i].checked) return radioObj[i].value; } return ""; } function changeProxy() { k++; if(k>=maxp) k=0; } var lognum=0; function addMes(msg) { lognum++; if(lognum>200) { lognum=0; document.getElementById("stats").innerHTML=""; } document.getElementById("stats").innerHTML=document.getElementById("stats").innerHTML+msg; if(document.getElementById("scrl").checked==true) document.getElementById("stats").scrollTop=100000; } function createHttpRequest() { var uagent=navigator.userAgent.toLowerCase(); var is_win=((uagent.indexOf("win")!=-1) || (uagent.indexOf("16bit")!=-1)); var is_opera=(uagent.indexOf('opera')!=-1); var is_webtv=(uagent.indexOf('webtv')!=-1); var is_safari=((uagent.indexOf('safari')!=-1) || (navigator.vendor=="Apple Computer, Inc.")); var is_ie=((uagent.indexOf('msie')!=-1) && (!is_opera) && (!is_safari) && (!is_webtv)); if(is_ie) httpRequest=new ActiveXObject("Microsoft.XMLHTTP"); else httpRequest=new XMLHttpRequest(); return httpRequest; } function sendRequest(params,showprox) { if(sent) return; if(useproxy) { if(params) params=params+"&pr="+prox[k]+"&pp="+pport[k]; else params="pr="+prox[k]+"&pp="+pport[k]; if(showprox) params=params+"&shp=1"; } if(params) params=params+"&ajax=1"; else params="ajax=1"; httpRequest.open('POST',"$thescript",true); httpRequest.setRequestHeader("Content-type","application/x-www-form-urlencoded"); httpRequest.setRequestHeader("Content-length",params.length); httpRequest.setRequestHeader("Connection","close"); httpRequest.onreadystatechange=getRequestx; httpRequest.send(params); } function getRequestx() { if(httpRequest.readyState==4) eval(httpRequest.responseText); } var httpRequest=createHttpRequest(); function rpl(st) { st=st.replace(/%u0430/g,"%E0"); st=st.replace(/%u0431/g,"%E1"); st=st.replace(/%u0432/g,"%E2"); st=st.replace(/%u0433/g,"%E3"); st=st.replace(/%u0434/g,"%E4"); st=st.replace(/%u0435/g,"%E5"); st=st.replace(/%u0436/g,"%E6"); st=st.replace(/%u0437/g,"%E7"); st=st.replace(/%u0438/g,"%E8"); st=st.replace(/%u0439/g,"%E9"); st=st.replace(/%u043A/g,"%EA"); st=st.replace(/%u043B/g,"%EB"); st=st.replace(/%u043C/g,"%EC"); st=st.replace(/%u043D/g,"%ED"); st=st.replace(/%u043E/g,"%EE"); st=st.replace(/%u043F/g,"%EF"); st=st.replace(/%u0440/g,"%F0"); st=st.replace(/%u0441/g,"%F1"); st=st.replace(/%u0442/g,"%F2"); st=st.replace(/%u0443/g,"%F3"); st=st.replace(/%u0444/g,"%F4"); st=st.replace(/%u0445/g,"%F5"); st=st.replace(/%u0446/g,"%F6"); st=st.replace(/%u0447/g,"%F7"); st=st.replace(/%u0448/g,"%F8"); st=st.replace(/%u0449/g,"%F9"); st=st.replace(/%u044A/g,"%FA"); st=st.replace(/%u044B/g,"%FB"); st=st.replace(/%u044C/g,"%FC"); st=st.replace(/%u044D/g,"%FD"); st=st.replace(/%u044E/g,"%FE"); st=st.replace(/%u044F/g,"%FF"); st=st.replace(/%u0410/g,"%C0"); st=st.replace(/%u0411/g,"%C1"); st=st.replace(/%u0412/g,"%C2"); st=st.replace(/%u0413/g,"%C3"); st=st.replace(/%u0414/g,"%C4"); st=st.replace(/%u0415/g,"%C5"); st=st.replace(/%u0416/g,"%C6"); st=st.replace(/%u0417/g,"%C7"); st=st.replace(/%u0418/g,"%C8"); st=st.replace(/%u0419/g,"%C9"); st=st.replace(/%u041A/g,"%CA"); st=st.replace(/%u041B/g,"%CB"); st=st.replace(/%u041C/g,"%CC"); st=st.replace(/%u041D/g,"%CD"); st=st.replace(/%u041E/g,"%CE"); st=st.replace(/%u041F/g,"%CF"); st=st.replace(/%u0420/g,"%D0"); st=st.replace(/%u0421/g,"%D1"); st=st.replace(/%u0422/g,"%D2"); st=st.replace(/%u0423/g,"%D3"); st=st.replace(/%u0424/g,"%D4"); st=st.replace(/%u0425/g,"%D5"); st=st.replace(/%u0426/g,"%D6"); st=st.replace(/%u0427/g,"%D7"); st=st.replace(/%u0428/g,"%D8"); st=st.replace(/%u0429/g,"%D9"); st=st.replace(/%u042A/g,"%DA"); st=st.replace(/%u042B/g,"%DB"); st=st.replace(/%u042C/g,"%DC"); st=st.replace(/%u042D/g,"%DD"); st=st.replace(/%u042E/g,"%DE"); st=st.replace(/%u042F/g,"%DF"); st=st.replace(/%u0401/g,"%A8"); st=st.replace(/%u0451/g,"%B8"); st=st.replace(/%u2116/g,"%B9"); st=st.replace(/%u201C/g,"\""); st=st.replace(/%u201D/g,"\""); st=st.replace(/%u2013/g,":"); st=st.replace(/%u2019/g,"'"); st=st.replace(/\+/g,"%2B"); return st; } function errMsg(num) { switch(num) { case 1: addMes("<font color=red>Ошибка работы с сокетами</font><br>"); break; case 2: addMes("<font color=red>Ошибка при отправке sms</font><br>"); break; case 3: addMes("<font color=red>Неправильно задан логин или пароль</font><br>"); break; case 4: addMes("<font color=red>Не удалось залогиниться</font><br>"); break; case 5: addMes("<font color=red>Некорректный номер телефона или неправильная задержка</font><br>"); break; case 6: addMes("<font color=red>Ошибка авторизации в агенте</font><br>"); break; case 7: addMes("<font color=red>Неверно задан адрес прокси</font><br>"); break; case 8: addMes("<font color=red>Неверно задан порт прокси</font><br>"); break; } } </script> </body></html> HERE; } else { header("Content-type: text/html; charset=windows-1251"); $browser="Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14"; $act=isset($_POST['act']) ? $_POST['act'] : 0; $pr=isset($_POST['pr']) ? $_POST['pr'] : ''; $pp=isset($_POST['pp']) ? $_POST['pp'] : ''; if($pr) { if(!preg_match("/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/",$pr)) { $pr=''; print("errMsg(7);"); } if(!preg_match("/^(\d)+$/",$pp)) { $pp=''; print("errMsg(8);"); } if(isset($_POST['shp'])) { print "addMes('<font color=blue>Текущий прокси: $pr:$pp</font><br>');"; ob_flush(); flush(); } } switch($act) { case '1': $mrnd=isset($_POST['rd']) ? $_POST['rd'] : 0; $msg=isset($_SESSION['msgx']) ? $_SESSION['msgx'] : ''; $telnum=isset($_POST['telnum']) ? $_POST['telnum'] : 0; if(!preg_match("/^(\d){11}$/",$telnum)) die("errMsg(5);nextMes();"); $wt=isset($_POST['wt']) ? $_POST['wt'] : 0; if(!preg_match("/^(\d)+$/",$wt)) die("errMsg(5);nextMes();"); if($mrnd) $msg.=" ".mt_rand(); $cookies=Array(); $xtmp=isset($_POST['login']) ? $_POST['login'] : ''; $xtmp=explode('@',$xtmp); $pass=isset($_POST['pass']) ? $_POST['pass'] : ''; $login=$xtmp[0]; $domain=$xtmp[1]; if(strlen($login)<1 || strlen($pass)<1 || strlen($domain)<1) die("errMsg(3);nextMes();"); $res=socket_do('win.mail.ru','/cgi-bin/loginagent','','GET','','',0,0,$pr,$pp); preg_match_all('/Set-Cookie: (.+);/iUs',$res,$cook); foreach($cook[1] as $ck) { $cookies[]=$ck; } $tmpcookie=implode('; ',array_unique($cookies)); $res=socket_do('koi.mail.ru','/cgi-bin/auth',"page=http%3A%2F%2Fmrim8.mail.ru%2Fwin%2Fcontactlist.html&FailPage=http%3A%2F%2Fwin.mail.ru%2Fcgi-bin%2Floginagent&post=&login_from=&Login=$login&Domain=$domain&Password=$pass&level=1&x=11&y=12",'POST',$tmpcookie,'http://win.mail.ru/cgi-bin/loginagent',0,0,$pr,$pp); preg_match_all('/Set-Cookie: (.+);/iUs',$res,$cook); foreach($cook[1] as $ck) { $cookies[]=$ck; } $cookies=implode('; ',array_unique($cookies)); preg_match("/Location: http:\/\/koi\.mail\.ru\/cgi\-bin\/checkcookie\?(.+)\r\n/iUs",$res,$m); if(!isset($m[1])) die("errMsg(4);nextMes();"); $res=socket_do('koi.mail.ru','/cgi-bin/checkcookie?'.$m[1],'','GET',$cookies,'http://win.mail.ru/cgi-bin/loginagent',0,0,$pr,$pp); preg_match("/Location: (.+)\r\n/iUs",$res,$m); if(!isset($m[1])) die("errMsg(4);nextMes();"); $tmp=explode('/',$m[1],4); $res=socket_do('mrim8.mail.ru','/'.$tmp[3],'','GET',$cookies,'http://win.mail.ru/cgi-bin/loginagent',0,0,$pr,$pp); $sock=@socket_create(AF_INET,SOCK_STREAM,SOL_TCP); if(!$sock) die("errMsg(1);nextMes();"); if($pr) { @socket_connect($sock,$pr,$pp) or die("errMsg(1);nextMes();"); $request = "POST http://mrim8.mail.ru/connect HTTP/1.0\r\n"; } else { @socket_connect($sock,"194.67.57.121","80") or die("errMsg(1);nextMes();"); $request = "POST /connect HTTP/1.0\r\n"; } @socket_set_nonblock($sock) or die("errMsg(1);nextMes();"); if(@socket_select($r = null, $w = array($sock), $f = null, 5)!=1) die("errMsg(1);nextMes();"); $request.= "Host: mrim8.mail.ru\r\n"; $request.= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0\r\n"; $request.= "Referer: {$m[1]}\r\n"; $request.= "Content-Type: application/xml\r\n"; $request.= "Content-Length: ".strlen('status=1')."\r\n"; $request.= "Connection: keep-alive\r\n"; $request.= "Keep-alive: 300\r\n"; $request.= "Cookie: $cookies\r\n"; $request.= "\r\n"; @socket_write($sock,$request.'status=1') or die("errMsg(1);nextMes();"); if(@socket_select($r = array($sock), $w = null, $f = null, 5)!=1) die("errMsg(1);nextMes();"); $ret=@socket_read($sock,1000) or die("errMsg(1);nextMes();"); if(strpos($ret,"MRIM_CS_LOGIN_REJ, {reason:\"Invalid session\"}")!==false) { @socket_close($sock); die("errMsg(6);nextMes();"); } usleep($wt*1000); $res=socket_do('mrim8.mail.ru','/sms','seq=1&flags=0&phone=%2B'.$telnum.'&message='.urlencode($msg),'POST',$cookies,'http://mrim8.mail.ru/win/contactlist.html?post=&x=0&y=0&login_from=',0,1,$pr,$pp); if(strpos($res,"HTTP/1.0 200 OK")===0 || strpos($res,"HTTP/1.1 200 OK")===0) { //$ret=@socket_read($sock,1000) or die("errMsg(1);nextMes();"); //if(strpos($ret,"MRIM_CS_SMS_ACK")===false) // die("errMsg(2);nextMes();"); @socket_close($sock); die("nextMes(1);"); } else { @socket_close($sock); die("errMsg(2);nextMes();"); } break; case '10': $msg=isset($_POST['msg']) ? trim($_POST['msg']) : ''; $_SESSION['msgx']=$msg; die("mes_ok(".strlen($msg).");"); break; default: die(); } } function socket_do($page,$suri,$data,$method,$cook,$ref,$close=0,$sms=0,$pr='',$pp=0) { if($pr) { $request="$method http://$page$suri HTTP/1.0\r\n"; $fp=fsockopen("tcp://".$pr,$pp,$errno,$errstr,30); } else { $request = "$method $suri HTTP/1.0\r\n"; $fp=fsockopen('tcp://'.$page,80,$errorNumber,$errorString,30); } if(!$fp) die("errMsg(1);nextMes();"); @stream_set_timeout($fp,30); $request.= "Host: $page\r\n"; $request.= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0\r\n"; if($ref) $request.= "Referer: $ref\r\n"; if($method=='POST') { $request.= $sms ? "Content-Type: application/xml\r\n" : "Content-Type: application/x-www-form-urlencoded\r\n"; $request.= "Content-Length: ".strlen($data)."\r\n"; } $request.= "Connection: close\r\n"; if($cook) $request.="Cookie: $cook\r\n"; $request.="\r\n"; $request.=$data; fputs($fp,$request); $res=""; while(!feof($fp)) { $res.=fgets($fp,128); if($close) break; } fclose($fp); return $res; } ?>
По названию темы сложно понять? ================================_ требует хостинг с потдержкой соккетов