CODE:
<?php
/**
* baidu 空间自动发BLOG机 [贴吧回贴机姊妹篇http://hi.baidu.com/hetal]
* author: hetal
* email : huoqi29@163.com
* qq : 231073376
* msn : hetao29@hotmail.com
* web : http://www.haqoo.com
* weburl: <a href="http://www.haqoo.com">http://www.haqoo.com</a>
*
*/
class Baidu_Blog{
var $proxyPort;
var $proxyHost;
var $cookie;
var $blogname="";
//设置代理 ,ok
function setProxy($proxyHost,$proxyPort){
$this->proxyPort=$proxyPort;
$this->proxyHost=$proxyHost;
}
//初始化baiduID ,ok
function init(){
set_time_limit(0);
$data = $this->_getUrl("http://www.baidu.com/search/img/logo.gif");
preg_match_all ("/Set-Cookie: (.+?)=(.+?);/", $data, $_matches,PREG_SET_ORDER);
$tmp=array();
for($i=0;$i<count($_matches);$i++){
$tmp[]=$_matches[$i][1]."=".$_matches[$i][2];
}
$this->cookie=implode(';',$tmp);
}
//登录
function login($user,$pass){
$cookie=$this->cookie;
$post_data ="tpl=&tpl_ok=&skip_ok=&aid=0&need_pay=&need_coin=0&pay_method=0&u=&next_target=&return_method=&more_param=&return_type=&username=$user&password=$pass&Submit=+%B5%C7%C2%BC+";
$post_data_le = strlen($post_data);
if(!empty($this->proxyPort) and !empty($this->proxyHost)){
$post_url="http://passport.baidu.com/?login";
$post_port=$this->proxyPort;
$post_host=$this->proxyHost;
$c;
}else{
$post_url="/?login";
$post_port=80;
$c;
$post_host="passport.baidu.com";
}
$data=" OST $post_url HTTP/1.1\nAccept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\nReferer: http://passport.baidu.com/?login\nAccept-Language: zh-cn\nContent-Type: application/x-www-form-urlencoded\nAccept-Encoding: gzip, deflate\nUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Alexa Toolbar)\nHost: passport.baidu.com\nContent-Length: $post_data_le\n$connect: Close\nCache-Control: no-cache\nCookie: $cookie\n\n$post_data\n";
$sock = fsockopen($post_host,$post_port,$errno,$error,3);
fputs($sock,$data);
stream_set_timeout($sock, 3);
$rt=stream_get_contents($sock);
$rt=str_replace("\n","",$rt);
$rt=str_replace("\t","",$rt);
fclose($sock);
preg_match_all ("/Set-Cookie: (.+?)=(.+?);/", $rt, $_matches,PREG_SET_ORDER);
$tmp=array();
for($i=0;$i<count($_matches);$i++){
$tmp[]=$_matches[$i][1]."=".$_matches[$i][2];
}
$this->cookie=$cookie.";".implode(';',$tmp);
if(isset($tmp['BDUSS']) and !empty($tmp['BDUSS'])){
return 0;
}else{
return 1;
}
}
//回贴
function post($title,$text,$catname="默认分类"){
$tmp = array();
$tmp[]="ct=1";
$tmp[]="cm=1";
$tmp[]="spRefURL=http://hi.baidu.com/music%5Fblog/creat/blog/";
$tmp[]="spBlogTitle=".rawurlencode($title);
$tmp[]="spBlogText=".rawurlencode($text);
$tmp[]="spBlogCatName=".rawurlencode($catname);
$tmp[]="spIsCmtAllow=1";
$tmp[]="spBlogPower=0";
$tmp[]="tj=".rawurlencode("发表文章");;
$cookie=$this->cookie;
$post_data =implode("&",$tmp);
$post_data_le = strlen($post_data);
if(!empty($this->proxyPort) and !empty($this->proxyHost)){
$post_url="http://hi.baidu.com/".$this->blogname."/commit";
$post_port=$this->proxyPort;
$c;
$post_host=$this->proxyHost;
}else{
$post_url="/".$this->blogname."/commit";
$post_port=80;
$c;
$post_host="hi.baidu.com";
}
$data=" OST $post_url HTTP/1.1\nAccept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\nAccept-Language: zh-cn\nContent-Type: application/x-www-form-urlencoded\nUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Alexa Toolbar)\nHost: tiebacommit.baidu.com\nContent-Length: $post_data_le\nConnection: Close\nCache-Control: no-cache\nCookie: $cookie\n\n$post_data\n";
$sock = fsockopen($post_host,$post_port,$errno,$error,3);
if(empty($sock)){
return -2;
}
fputs($sock,$data);
stream_set_timeout($sock, 3);
$rt=stream_get_contents($sock);
$rt=str_replace("\n","",$rt);
$rt=str_replace("\t","",$rt);
fclose($sock);
if(stripos($rt,"恭喜,您的文章已经发表成功")){
return 0;
}else{
return -1;
}
}
function _getUrl($url,$referer=""){
$purl= parse_url($url);
$host=$purl['host'];
if(!empty($this->proxyHost) and !empty($this->proxyPort)){
$port=$this->proxyPort;
$post_host=$this->proxyHost;
}else{
$post_host=$purl['host'];
if(empty($purl['port'])){
$port=80;
}else{
$port=$purl['port'];
}
}
$cookie = $this->cookie;
$path=$purl['path'];
$query=empty($purl['query'])?"" purl['query'];
if(!empty($proxyhost) and !empty($proxyport)){
$c;
$content.="GET $url HTTP/1.0\r\n";
$content.="Accept: */*\r\n";
if(!empty($referer))
$content.="Referer: $referer\r\n";
$content.="Accept-Language: zh-cn\r\n";
$content.=" roxy-Connection: Close\r\n";
$content.="User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n";
$content.="Host: $host\r\n";
$content.="Pragma: no-cache\r\n";
$content.="Cookie: $cookie\r\n";
$content.="\r\n\r\n";
}else{
$c;
if(!empty($query))
$content.="GET $path?$query HTTP/1.0\r\n";
else
$content.="GET $path HTTP/1.0\r\n";
$content.="Accept: */*\r\n";
if(!empty($referer))
$content.="Referer: $referer\r\n";
$content.="Accept-Language: zh-cn\r\n";
$content.="Connection: Close\r\n";
$content.="User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n";
$content.="Host: $host\r\n";
$content.="Pragma: no-cache\r\n";
$content.="Cookie: $cookie\r\n";
$content.="\r\n\r\n";
}
$sock=fsockopen ($post_host,$port,$errno, $errstr, 3);
if($sock){
fwrite($sock,$content);
}else{
return null;
}
$rt=stream_get_contents($sock);
fclose($sock);
return $rt;
}
}
$a = new Baidu_Blog;
$title="T";
$text="<a href='ddd'>xxxxxxx</a>";
//1.初始化
$a->init();
//2.设置blog名,如http://hi.baidu.com/mymusicblog的blog名是 mymusicblog [这个必须]
$a->blogname="music_blog";
//3.登录
if($a->login("music_blog","music_blog")){
echo "Login Success\n";
}else{
die("Login Fail\n");
}
//4.发BLOG
if($a->post($title,$text)==0){
echo "OK";
}else{
echo "FAIL";
}
?>
|