function?POST($Url,$Argv){
創(chuàng)新互聯(lián)-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比梁溪網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式梁溪網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋梁溪地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴(lài)。
$flag?=?0;
$post?=?'';
$errno?=?'';
$errstr?=?'';
foreach($Argv?as?$key?=?$value){
if($flag?!=?0){
$post?.=?"";
$flag?=?1;
}
$post?.=?$key?.?"=";
$post?.=?urlencode($value);
$flag??=?1;
}
$length?=?strlen($post);
$fp?=?fsockopen("localhost",80,$errno,$errstr,10)?or?exit($errstr."---".$errno);
$header??=?"POST?"?.?$Url?.?"?HTTP/1.1\r\n";
$header?.=?"Host:127.0.0.1\r\n";
$header?.=?"Referer:/flandy/post.php\r\n";
$header?.=?"Content-Type:?application/x-www-form-urlencoded\r\n";
$header?.=?"Content-Length:?"?.?$length?.?"\r\n";
$header?.=?"Connection:?Close\r\n\r\n";
$header?.=?$post?.?"\r\n";
fputs($fp,$header);
$inheader?=?1;
$Return?=?'';
while(!feof($fp)){
$line?=?fgets($fp,1024);
if($inheader??($line?==?"\n"?||?$line?==?"\r\n"))$inheader?=?0;
if($inheader?==?0)?$Return?.=?$line;
}
fclose($fp);
return?trim($Return);
}
//調(diào)用方式
$Result?=?POST('xxxxxURLxxx',array('dataName'?=?'dataValue'));
譬如cookie 名為 mycookie。
直接變量獲取 $_COOKIE['mycookie']) 然后像普通數(shù)據(jù)一樣提交。
希望回答對(duì)你有幫助,如果有疑問(wèn),請(qǐng)繼續(xù)追問(wèn)
答題不易,互相理解,您的采納是我前進(jìn)的動(dòng)力,感謝您。
用php模擬登陸主要分為三部分1. post數(shù)據(jù)。2.根據(jù)返回的http頭,從中截出cookie段。3.偽造http頭發(fā)送請(qǐng)求。 我這里以用php抓取163相冊(cè)的需要密碼才能訪問(wèn)的目錄為例。?phpfunction posttohost($url, $data) //post數(shù)據(jù)if (!isset($url['query'])) $encoded = "";foreach ($data as $k=$v) $fp = fsockopen($url['host'], $url['port'] ? $url['port'] : 80);if (!$fp) return "Failed to open socket to $url[host]";fputs($fp, sprintf("POST %s%s%s HTTP/1.0\n", $url['path'], $url['query'] ? "?" : "", $url['query']));fputs($fp, "Host: $url[host]\n");fputs($fp, "Content-type: application/x-www-form-urlencoded\n");fputs($fp, "Content-length: " . strlen($encoded) . "\n");fputs($fp, "Connection: close\n\n");fputs($fp, "$encoded\n");$line = fgets($fp,1024);if (!eregi("^HTTP/1\.. 200", $line)) return;$results = ""; $inheader = 1;while(!feof($fp)) elseif ($inheader) }fclose($fp);return $results;} 答案補(bǔ)充 function getjs($juser,$jaid,$jcookie) //偽造http頭 答案補(bǔ)充 else fclose( $socket ); return $ret;}}$iurl=' '.$iuser.'/'.$aid.'/';$idata=array ('pass'=$pass,'checking'='1'); //通過(guò)winsock抓包發(fā)現(xiàn),輸入訪問(wèn)密碼,會(huì)向163相冊(cè)發(fā)送 pass=密碼checking=1$mystr=posttohost($iurl,$idata);$pattern='/HALFORDER=(.*?);/';preg_match($pattern,$mystr,$out);$str=getjs($iuser,$aid,$out[1]);echo $str;?