- <?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;
- $connect="Proxy-Connection";
- }else{
- $post_url="/?login";
- $post_port=80;
- $connect="Connection";
- $post_host="passport.baidu.com";
- }
- $data="POST $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;
- $connect="Proxy-Connection";
- $post_host=$this->proxyHost;
- }else{
- $post_url="/".$this->blogname."/commit";
- $post_port=80;
- $connect="Connection";
- $post_host="hi.baidu.com";
- }
- $data="POST $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)){
- $content="";
- $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.="Proxy-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{
- $content="";
- 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";
- }
- ?>
|