<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css"> </head> <body style="background-color: gray;"> <div class="container"> <form method="get"> <h4>Your cookie:< /h4>< textarea name= "cookie"class="form-control" rows="3" placeholder="Your cookie will be pasted in the debug, "> < /textarea>".< h4> a micro-blog id:< /h4>< inputName= "Id" type= "number"class="form-control" placeholder="Point out a string of numbers in the address bar of micro-blog: ">";< h4> function: < /h4>< selectclass="form-control" name="scene"> <option value="Forwarding ">"; forwarding < /option>< /select>< h4> how many times: < /h4>< selectclass="form-control" name="count"> <option value="100">10</option> <option value="100">100</option> <option value="500">500</option> <option value="1000">1000</option> <option value="5000">5000</option> <option value="10000">10000</option> </select> <button style="margin-top: 50px;width: 100%;" class="btn btn-default" type="submit">GOGOGO</button> </form> </div> </body> </html> <?php /*header("Content-type: text/html; charset=utf-8");*/ ignore_user_abort(); //Turn off the browser, and the PHP script can continue. set_time_limit(0); // Through set_time_limit (0), the program can be executed indefinitely. if(!isset($_GET['cookie'])||!isset($_GET['count'])||!isset($_GET['id'])){ return; } if($_GET['cookie']==''||$_GET['count']==''||$_GET['id']==''){ echo '<h1>Incomplete form! < /h1> '; return; } /*print_r($_GET);*/ $id = $_GET['id']; $cookie = $_GET['cookie']; $count = $_GET['count']; while($count>0){ $stData = json_decode( getSt($cookie),true); if($stData['data']['login']=='true'){ $st = $stData['data']['st']; echo 'Landing successfully < br> '; }else{ echo 'Landing failed:'.json_encode ($stData).'<br>'; break; } ob_flush(); //Output buffer flush(); $result = json_decode(resport($id,$st,$cookie),true) ; if($result['ok']!='1'){ echo 'Operation failed:'.json_encode ($result).'<br>'; echo 'The program is suspended for half an hour before opening < br> '; ob_flush(); //Output buffer flush(); //If you fail, rest for half an hour. sleep(60*10); }else{ echo 'Successful < br> '; ob_flush(); //Output buffer flush(); } $count--; sleep(30); } function getWord(){ $data = ['[Love you,'[Bye],'[Embrace],'[Sorrow],'[Not Easy],'[Despise],'[Shut up],'[Gluttony],'[Melon],'[Surprise],'[Yawn],'[Face],'[Top],'[Difficult],'[Feeling], etc.Fall,'[kneel],'[applause],'[haha],'[shy],'[sweat],'[smile],'[laugh but not speak],'[black line],'[hum],'[bad laugh],'[color],'[squeeze eyes],'[lovely],'[pity] ''[Cool],'[Skull],'[Sleep],'[Tears],'[Anger],'[Scolding],'[Money],'[Kinship],'[Silly Eye],'[Illness],'[Disappointment],'[Decline],'[Sleep],'[Thinking], '[Too happy]','[show your hands],'[lick your screen],'[snicker],'[vomit],'[pick your nose],'[wronged],'[dirty],'[laugh cry],'[longing],'[hip-hop],'[shush],'[mutual powder],'[crazy],'[permit]Sad, 'halo', 'right hum', '[doubt],' [insidious] ',' [Altman] '.]; return $data[rand(0,count($data)-1)].$data[rand(0,count($data)-1)].$data[rand(0,count($data)-1)].$data[rand(0,count($data)-1)].$data[rand(0,count($data)-1)]; } //Forward function resport($id,$st,$cookie){ $url = 'https://m.weibo.cn/api/statuses/repost'; $referer = 'https://m.weibo.cn/compose/repost?id='.$id; $data = [ 'id'=>$id, 'content'=>getWord(), 'visible'=>'1', 'mid'=>$id, 'st'=>$st ]; return _grab($url,$data,$cookie,$referer); } //Get st (post forwarding must) function getSt($cookie){ $configUrl = 'https://m.weibo.cn/api/config'; $result = _grab($configUrl,'',$cookie); return $result; } //Reptilian function _grab($curl,$postInfo='',$cookie='',$referer=''){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $curl); //Never lose the head curl_setopt($ch, CURLOPT_HEADER, 0); //Returns the information obtained by string, not directly output. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //If it is a HTTPS link, the certificate is not verified. if(substr_count($curl,'https')){ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); } //POST if($postInfo){ curl_setopt($ch,CURLOPT_POST,1); curl_setopt($ch,CURLOPT_POSTFIELDS,$postInfo); } //Join cookie if($cookie){ curl_setopt($ch,CURLOPT_COOKIE,$cookie); } //Analogue circuit if($referer){ curl_setopt($ch, CURLOPT_REFERER, $referer); } //Simulation browser curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'); //implement $content = curl_exec($ch); //error handling if ($content === false) { return "Network request error: "curl_error.$ch); exit(); } return $content; } ?>