Новичок
Профиль
Группа: Участник
Сообщений: 7
Регистрация: 23.5.2007
Репутация: нет Всего: нет
|
Есть скрипт авто-регистрации почты, подскажите пожалуйста где в скрипте происходит генерация логина и пароля для заполнения форм ? Код | <?php set_time_limit(0); session_start();
$ajax=isset($_POST['ajax']) ? 1 : 0;
$browser="Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14";
$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(isset($_GET['nw'])) { $pr=isset($_GET['pr']) ? $_GET['pr'] : ''; $pp=isset($_GET['pp']) ? $_GET['pp'] : '';
$x=isset($_GET['img_coord_x']) ? $_GET['img_coord_x'] : ''; $y=isset($_GET['img_coord_y']) ? $_GET['img_coord_y'] : '';
if($x) { $_GET['nw'].='&img_coord.x='.$x.'&img_coord.y='.$y; }
$ret=socket_do('win.mail.ru','','/cgi-bin/x_reg_frame?x_reg_id=regV2_'.$_GET['nw'],$browser,'',1,'GET','http://win.mail.ru/cgi-bin/x_reg_frame',0,$pr,$pp);
if(strpos($ret,'Код введен правильно')!==false) { print <<<HERE <html><body><script> window.opener.focus(); window.close(); window.opener.send2(); </script> </body> </html> HERE; }
if(strpos($ret,'Вы неправильно ввели')!==false) { print <<<HERE <html><body><script> window.opener.focus(); window.opener.errMsg(4); window.opener.nextReg(); window.close(); </script> </body> </html> HERE; }
$ret=substr($ret,strpos($ret,"\r\n\r\n")+4);
$ret=str_replace('<head>',"<head><meta http-equiv=\"Content-Type\" content=\"text/html;charset=windows-1251\"><script language='JavaScript'>function nxt() {window.opener.focus();window.opener.nextReg();window.close();}</script>",$ret);
$ret=str_replace('action=x_reg_frame',"action='?'",$ret);
$ret=str_replace("src=\"x_code_image?","src=\"?pr={$pr}&pp={$pp}&img2=",$ret);
$ret=str_replace("name=\"x_reg_id\"","name='nw'",$ret);
$ret=str_replace("<input type=hidden value=\"regV2_","<input type=hidden value=\"",$ret);
$ret=str_replace('</form>',"<input type='hidden' name='pr' value='$pr'><input type='hidden' name='pp' value='$pp'></form><br><input type='button' onclick='nxt()' value='Пропустить ввод'>",$ret);
print $ret;
exit(); }
if(isset($_GET['img2'])) { if(!isset($_GET['x_reg_id'])) die();
$pr=isset($_GET['pr']) ? $_GET['pr'] : ''; $pp=isset($_GET['pp']) ? $_GET['pp'] : '';
if($pr) { if(!preg_match("/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/",$pr) || !preg_match("/^(\d)+$/",$pp)) { $pr=''; $pp=''; } }
$ret=socket_do('win.mail.ru','','/cgi-bin/x_code_image?x_reg_id='.$_GET['x_reg_id'],$browser,'',1,'GET','',0,$pr,$pp); print substr($ret,strpos($ret,"\r\n\r\n")+4); exit(); }
if(isset($_GET['img'])) { header('Content-type: image/jpeg'); $img=$_GET['img']; $num=isset($_GET['num']) ? $_GET['num'] : ''; $id=isset($_GET['id']) ? $_GET['id'] : '';
$pr=isset($_GET['pr']) ? $_GET['pr'] : ''; $pp=isset($_GET['pp']) ? $_GET['pp'] : '';
if($pr) { if(!preg_match("/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/",$pr) || !preg_match("/^(\d)+$/",$pp)) { $pr=''; $pp=''; } }
if(!preg_match("/^[0-9a-z]+$/i",$img) || !preg_match("/^[0-9a-z]+$/i",$id) || !preg_match("/^[0-9]+$/i",$num)) die(); $ret=socket_do('win.mail.ru','','/cgi-bin/x_image?'.$img.'&num='.$num.'&x_reg_id='.$id,$browser,'',1,'GET','http://win.mail.ru/cgi-bin/signup',0,$pr,$pp); print substr($ret,strpos($ret,"\r\n\r\n")+4); exit(); }
$ver='1.0'; if(!$ajax) { print <<<HERE <html><head> <meta http-equiv="Content-Type" content="text/html;charset=windows-1251"> <title>Mail.ru Regger HERE; $ftmp='b'.'y'.' '.'D'.'X'.' '; print $ftmp; print <<<HERE $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">Mail.ru Regger By DX $ver</td></tr> <tr valign=top><td><span id="name1">Установите настройки и нажмите "Начать"</span><hr> <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> <span id="successm" style="display:none;"></span><br> <br><div id="scrl2" style="display:none;""><input type="checkbox" checked id="scrl"> Авто-скролл логов</div> </td><td style="width:290">Опции рассылки<hr> <div id="opts"> <div id="choose"> <a href="#" onclick="chtab(1);return false;">Прокси</a> <a href="#" onclick="chtab(2);return false;">Настройки</a> <a href="#" onclick="chtab(3);return false;">Зарегистрированные e-mail</a> <hr></div> <div id="tab1"> Список прокси (не обязательно):<br><textarea rows=20 cols=30 id="proxy"></textarea> <br>Прокси-серверы будут меняться для каждой регистрации. </div>
<div id="tab2" style="display:none"> Минимальная длина e-mail: <input type="text" id="minlen" value="7" style="width:50"><br> Максимальная длина e-mail: <input type="text" id="maxlen" value="12" style="width:50"><br> Разделять e-mail и пароль символом: <input type="text" id="symb" value=":" style="width:20" maxlength=1> </div>
<div id="tab3" style="display:none"> Список зарегистрированных:<br> <textarea rows=20 cols=37 id="emails"></textarea> </div> </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 ismes=false; var prox=new Array(); var pport=new Array(); var useproxy=false; var k=0; var maxp; var nregex=/^\d+$/g; var successes=0;
var minlen; var maxlen; var symb;
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));
function chtab(num) { hideTabs(); showTab(num); }
function hideTabs() { for(var i=1;i<=3;i++) { document.getElementById("tab"+i).style.display="none"; } }
function showTab(num) { document.getElementById("tab"+num).style.display="block"; }
function startmess() { if(ismes) { if(!window.confirm("Вы действительно желаете остановить регистрацию?")) return;
ismes=false; document.getElementById("st").value="Начать регистрацию"; document.getElementById("stats").style.display="none"; document.getElementById("name1").innerHTML="Установите настройки и нажмите "Начать""; document.getElementById("successm").style.display="none"; document.getElementById("scrl2").style.display="none"; document.getElementById("choose").style.display="block";
return; }
document.getElementById("proxy").value=document.getElementById("proxy").value.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
prox=new Array(); pport=new Array(); useproxy=false; k=0; successes=0;
var tmp;
minlen=document.getElementById("minlen").value; maxlen=document.getElementById("maxlen").value; symb=document.getElementById("symb").value;
if(symb.length!=1) { alert("Введите разделитель адреса и пароля в списке зарегистрированных."); chtab(2); return false; }
if(minlen.search(nregex)==-1 || maxlen.search(nregex)==-1 || Number(minlen)>Number(maxlen)) { alert("Введите правильную минимальную и максимальную длину адреса."); chtab(2); return false; }
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(1); return false; }
for(var i=0;i<cnt;i++) { tmp2=tmp[i].split(":"); cnt2=tmp2.length; if(cnt2!=2) { alert("Прокси-серверы введены в неверном формате. Используйте ip:port."); chtab(1); return false; }
if(tmp2[0].length==0 || tmp2[1].length==0) { alert("Прокси-серверы введены в неверном формате. Используйте ip:port."); chtab(1); return false; }
prox[i]=tmp2[0]; pport[i]=tmp2[1]; }
useproxy=true; maxp=cnt; }
ismes=true; document.getElementById("st").value="Идёт регистрация..."; document.getElementById("stats").style.display="block"; document.getElementById("name1").innerHTML="Процесс регистрации адресов"; document.getElementById("scrl2").style.display="block"; document.getElementById("choose").style.display="none"; chtab(3);
document.getElementById("successm").style.display="block"; document.getElementById("successm").innerHTML="Успешно зарегистрировано: 0";
document.getElementById("stats").innerHTML="<font color='red'><b>Старт регистрации...</b></font><br>";
setTimeout("startReg()",1); }
function startReg() { if(!ismes) return;
sendRequest("act=1",1);
if(useproxy) changeProxy(); }
function nextReg(suc,addr,pass) { if(suc) { successes++; document.getElementById("successm").innerHTML="Успешно зарегистрировано: "+successes; addMes("<font color=green'>Успешно зарегистрирован адрес "+addr+"</font><br>"); document.getElementById("emails").value=document.getElementById("emails").value+addr+symb+pass+"\\n"; }
setTimeout("startReg()",1); }
function nextReg2() { setTimeout("nextReg()",1000); }
function print_images(data1,data2,data3) { if(!ismes) return; addMes("<div id='imgss'><img id='i1' src='?"+data1+"&pr="+prox[k]+"&pp="+pport[k]+"' /><img id='i2' src='?"+data2+"&pr="+prox[k]+"&pp="+pport[k]+"' /><img id='i3' src='?"+data3+"&pr="+prox[k]+"&pp="+pport[k]+"' /><br><input type='text' name='cap' onKeyPress='checkEnter(event)' id='cpc'><br><input type='button' id='snd' onclick='scpc()' value='Готово'><br></div>"); setTimeout('fcs()',100); }
function fcs() { if(!ismes) return; document.all.cap.focus(); }
function checkEnter(e) { var characterCode; if(e && e.which) { characterCode=e.which; } else { e=event; characterCode=e.keyCode; }
if(characterCode==13) scpc(); else return false; }
function scpc() { if(!ismes) return; var xtmp=document.getElementById('cpc').value; if(!xtmp) {alert("Введите символы с картинок");return false;}
if(document.getElementById('imgss')) { document.getElementById('imgss').innerHTML=''; if(is_ie) document.getElementById('imgss').outerHTML=''; else document.getElementById('imgss').id=''; } sendRequest("act=2&minlen="+minlen+"&maxlen="+maxlen+"&imt="+xtmp); }
function send2() { if(!ismes) return; sendRequest("act=2&minlen="+minlen+"&maxlen="+maxlen+"&noimgs=1"); }
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 errMsg(typ) { switch(typ) { case 1: addMes("<font color='red'>Ошибка парсинга страницы регистрации.</font><br>"); break;
case 2: addMes("<font color='red'>Ошибка регистрации e-mail, возможно, он уже существует.</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'>Такой e-mail уже существует.</font><br>"); break;
case 6: addMes("<font color='red'>Превышен лимит регистраций с данного IP.</font><br>"); break; } }
function createHttpRequest() { if(is_ie) httpRequest=new ActiveXObject("Microsoft.XMLHTTP"); else httpRequest=new XMLHttpRequest();
return httpRequest; }
function changeProxy() { k++; if(k>=maxp) k=0; }
function winOp(xid) { if(!ismes) return; addMes("<font color='blue'>Обнаружена сложная капча. Сейчас откроется окно для её ввода.</font><br>"); window.open("{$thescript}?nw="+xid+"&pr="+prox[k]+"&pp="+pport[k],"Regger","menubar=no,location=no,resizable=no,scrollbars=no,status=no,width=200,height=200"); }
function sendRequest(params,showprox) { 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(); </script> </body></html> HERE; } else { header("Content-type: text/html; charset=windows-1251");
$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=''; $pp=''; print("errMsg(3);"); }
if(!preg_match("/^(\d)+$/",$pp)) { $pp=''; $pr=''; print("errMsg(3);"); }
if(isset($_POST['shp'])) { print "addMes('<font color=blue>Текущий прокси: $pr:$pp</font><br>');"; ob_flush(); flush(); } }
switch($act) { case '1': $ret=socket_do('win.mail.ru','','/cgi-bin/signup',$browser,'',1,'GET','http://mail.ru',0,$pr,$pp);
preg_match("/<input type=\"hidden\" name=\"ID\" value=\"([0-9a-z]+)\">/is",$ret,$m);
if(!isset($m[1])) die("errMsg(1);nextReg();");
$_SESSION['id']=$m[1];
preg_match("/name_ = document\.uinfo\.x_([a-z0-9]+)\./is",$ret,$m);
if(!isset($m[1])) die("errMsg(1);nextReg();");
$_SESSION['email']=$m[1];
preg_match("/lastName_ = document\.uinfo\.x_([a-z0-9]+)\./is",$ret,$m);
if(!isset($m[1])) die("errMsg(1);nextReg();");
$_SESSION['lastname']=$m[1];
preg_match("/firstName_ = document\.uinfo\.x_([a-z0-9]+)\./is",$ret,$m);
if(!isset($m[1])) die("errMsg(1);nextReg();");
$_SESSION['firstname']=$m[1];
preg_match("/birthDay_ = parseInt\(document\.uinfo\.x_([a-z0-9]+)\./is",$ret,$m);
if(!isset($m[1])) die("errMsg(1);nextReg();");
$_SESSION['birthday']=$m[1];
preg_match("/birthYear_ = parseInt\(document\.uinfo\.x_([a-z0-9]+)\./is",$ret,$m);
if(!isset($m[1])) die("errMsg(1);nextReg();");
$_SESSION['birthyear']=$m[1];
preg_match_all("/<input type=\"password\" name=\"x_([a-z0-9]+)\"/is",$ret,$m);
if(!isset($m[1][0]) || !isset($m[1][1])) die("errMsg(1);nextReg();");
$_SESSION['pass1']=$m[1][0]; $_SESSION['pass2']=$m[1][1];
preg_match("/customQuestionAsterix\"> <\/td>\n\n <td><input type=text Name=\"x_([a-z0-9]+)\"/is",$ret,$m);
if(!isset($m[1])) die("errMsg(1);nextReg();");
$_SESSION['question']=$m[1];
preg_match("/на вопрос<\/td>\n\n <td align=right><b class=red>\*<\/b> <\/td>\n\n <td><input type=text Name=\"x_([a-z0-9]+)\"/is",$ret,$m);
if(!isset($m[1])) die("errMsg(1);nextReg();");
$_SESSION['ans']=$m[1];
preg_match("/<input type=radio Name=\"x_([a-z0-9]+)\" value=\"1\"/is",$ret,$m);
if(!isset($m[1])) die("errMsg(1);nextReg();");
$_SESSION['gender']=$m[1];
preg_match_all("/<img src=\"x_image\?([a-z0-9]+)&num=([a-z0-9]+)&x_reg_id=([a-z0-9]+)\"/is",$ret,$m);
if(!isset($m[1][0]) || !isset($m[1][1]) || !isset($m[1][2])) { preg_match("/src='x_reg_frame\?([a-z0-9]+)&x_reg_id=regV2_([a-z0-9]+)'><\/iframe>/is",$ret,$m);
if(!isset($m[2])) die("errMsg(1);nextReg();");
$_SESSION['regid']='regV2_'.$m[2];
die("winOp('{$m[2]}');"); } else { preg_match("/на картинке<\/td>\n\n <td align=right><b class=red>\*<\/b> <\/td>\n\n <td><input type=text name=\"x_([a-z0-9]+)\"/is",$ret,$mm);
if(!isset($mm[1])) die("errMsg(1);nextReg();");
$_SESSION['images']=$mm[1];
$_SESSION['img1']=$m[1][0]; $_SESSION['img2']=$m[1][1]; $_SESSION['img3']=$m[1][2];
$_SESSION['imgnum1']=$m[2][0]; $_SESSION['imgnum2']=$m[2][1]; $_SESSION['imgnum3']=$m[2][2];
$_SESSION['regid']=$m[3][0];
die("print_images('img=".$m[1][0]."&num=".$m[2][0]."&id=".$m[3][0]."','img=".$m[1][1]."&num=".$m[2][1]."&id=".$m[3][0]."','img=".$m[1][2]."&num=".$m[2][2]."&id=".$m[3][0]."');"); } break;
case '2': $minlen=isset($_POST['minlen']) ? $_POST['minlen'] : 7; $maxlen=isset($_POST['maxlen']) ? $_POST['maxlen'] : 12;
$imt=isset($_POST['imt']) ? $_POST['imt'] : '';
$eml=gen_rand_name($minlen,$maxlen);
$fname=gen_rand_name(5,15); $lname=gen_rand_name(5,15); $bday=mt_rand(1,29); $bmonth=mt_rand(1,12); $byear=mt_rand(1960,1995);
$pss=gen_rand_name(8,12); $qst=gen_rand_name(15,30); $an=gen_rand_name(15,30);
$gnd=mt_rand(1,2);
$dm=get_r_domain();
if(isset($_POST['noimgs'])) $immms=''; else $immms='&x_'.$_SESSION['images'].'='.$imt;
$ret=socket_do('win.mail.ru',"back=&Count=1&ID=".$_SESSION['id'].'&x_'.$_SESSION['email'].'='.$eml .'&RegistrationDomain='.$dm .'&x_'.$_SESSION['lastname'].'='.$lname .'&x_'.$_SESSION['firstname'].'='.$fname .'&x_'.$_SESSION['birthday'].'='.$bday .'&x_'.$_SESSION['birthyear'].'='.$byear .'&BirthMonth='.$bmonth .'&x_'.$_SESSION['pass1'].'='.$pss .'&x_'.$_SESSION['pass2'].'='.$pss .'&Password_Question=Custom' .'&x_'.$_SESSION['question'].'='.$qst .'&x_'.$_SESSION['ans'].'='.$an .'&x_'.$_SESSION['gender'].'='.$gnd .$immms .'&security_image_id=' .'&x_reg_id='.$_SESSION['regid'] .'&B1='.urlencode(' Зарегистрировать почтовый ящик ') ,'/cgi-bin/reg',$browser,'',1,'POST','http://win.mail.ru/cgi-bin/signup',1,$pr,$pp);
if(strpos($ret,'Пользователь с таким именем уже зарегистрирован в системе')!==false) die("errMsg(5);nextReg()");
if(strpos($ret,'Неверно указан код защиты от автоматических регистраций')!==false) die("errMsg(4);nextReg()");
if(strpos($ret,'Превышен лимит регистраций с Вашего IP')!==false) die("errMsg(6);nextReg()");
if(strpos($ret,'HTTP/1.1 302 Found')===0) die("nextReg(1,'".$eml.'@'.$dm."','".$pss."');"); else die("errMsg(2);nextReg()"); break;
default: die(); }
}
function get_r_domain() { switch(mt_rand(1,4)) { case 1: return 'mail.ru'; break; case 2: return 'list.ru'; break; case 3: return 'bk.ru'; break; case 4: return 'inbox.ru'; break; } }
function socket_do($host,$vars,$service_uri,$browser,$cookies='',$sread=1,$method='POST',$ref='',$addheaders=1,$proxy=false,$proxyport=0,$HTTP='1.0') { global $ajax;
$ret="";
if($method=='GET' && $vars) { $service_uri.='?'.$vars; $vars=''; }
$header="Host: $host\r\n"; $header.="User-Agent: $browser\r\n";
if($addheaders==1) { $header.="Content-Type: application/x-www-form-urlencoded\r\n"; $header.="Content-Length: ".strlen($vars)."\r\n"; } else if($addheaders==0) { $header.="Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n"; $header.="Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n"; $header.="Accept-Encoding: \r\n"; $header.="Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n"; } else if($addheaders==2) { $header.="Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n"; $header.="Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n"; $header.="Accept-Encoding: \r\n"; $header.="Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n"; $header.="Pragma: no-cache\r\n"; $header.="Cache-Control: no-cache\r\n"; $header.="Content-Length: ".strlen($vars)."\r\n"; $header.="Content-Type: application/x-www-form-urlencoded; charset=windows-1251\r\n"; } else if($addheaders==3) { $header.="Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n"; $header.="Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n"; $header.="Accept-Encoding: gzip,deflate\r\n"; $header.="Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n"; }
if($ref) $header.="Referer: $ref\r\n";
$header.="Connection: close\r\n";
if($cookies) $header.="Cookie: $cookies\r\n";
$header.="\r\n";
if($proxy) { $addquery="$method http://$host$service_uri HTTP/$HTTP\r\n"; $fp=@fsockopen("tcp://".$proxy,$proxyport,$errno,$errstr,30); } else { $addquery="$method $service_uri HTTP/$HTTP\r\n"; $fp=@fsockopen("tcp://".$host,80,$errno,$errstr,30); }
if(!$fp) { if($ajax) print "addMes('<font color=red>Socket error: <i>$errstr ($errno)</i></font><br>');nextReg2();"; else print "<font color=red>Socket error: <i>$errstr ($errno)</i></font>";
exit(); }
stream_set_timeout($fp,30);
fputs($fp,$addquery); fputs($fp,$header.$vars);
if($sread) { while(!feof($fp)) { $ret.=fgets($fp, 128); } }
fclose($fp);
return $ret; }
function gen_rand_name($from,$to) { $name='';
for($i=0,$cnt=mt_rand($from,$to);$i<$cnt;$i++) { $name.=mt_rand(0,3)==3 ? mt_rand(0,9) : chr(mt_rand(97,122)); }
return $name; }
?>
|
|