Tiktok GET uid 获取UID源码[PHP源码]

本来让下面的小弟用PYthon写个

可惜小弟python基础太差了。于是乎自己百度了下资料 整合下其他编程经验于是乎

就出来了这个成品:

<?php
$t1 = microtime(true);
header('content-type:text/html;charset=utf-8');
ini_set("max_execution_time", 240); // s 40 分钟 
function curlPost($url,$data,$method){
    $cacert = getcwd() . '/cacert.pem'; //CA根证书  
  $ch = curl_init();   //1.初始化
  curl_setopt($ch, CURLOPT_URL, $url); //2.请求地址
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);//3.请求方式
  //4.参数如下
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);   // 只信任CA颁布的证书  
    curl_setopt($ch, CURLOPT_CAINFO, $cacert); // CA根证书(用来验证的网站证书是否是CA颁布)  
  curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');//模拟浏览器
    curl_setopt($ch, CURLOPT_TIMEOUT, 20); // 设置超时限制防止死循环 //接收数据时超时设置,如果20秒内数据未接收完,直接退出
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);//遵循的重定向次数 // 使用自动跳转
  curl_setopt($ch, CURLOPT_AUTOREFERER, 1);//自动设置header中的Referer:信息
    curl_setopt($ch, CURLOPT_HTTPHEADER,array('Accept-Encoding: gzip, deflate'));//gzip解压内容
    curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');
    
//  curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
//设置代理
// $proxy_ip = "59.38.241.25";
// $proxy_port = "23916";
// $proxy = $proxy_ip.":".$proxy_port;    
//  curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
//  curl_setopt($ch, CURLOPT_PROXY, $proxy);
 //设置代理2
//  curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_BASIC); //代理认证模式  
//  curl_setopt($ch, CURLOPT_PROXY, "$arrip[0]"); //代理服务器地址   
//  curl_setopt($ch, CURLOPT_PROXYPORT,$arrip[1]); //代理服务器端口

  if($method=="POST"){//5.post方式的时候添加数据
  curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
  }
  
  
  if($method=="GET"){//get方式
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  }
  
  $tmpInfo = curl_exec($ch);//6.执行
  
  if (curl_errno($ch)) {//7.如果出错
    return curl_error($ch);
  }
  
  curl_close($ch);//8.关闭
  return $tmpInfo;
}

/*检测ip有效*/
function GetHttpStatusCode($proxy){
$curl = curl_init();
curl_setopt ($curl, CURLOPT_PROXY, $proxy);//使用代理访问
curl_setopt($curl,CURLOPT_URL,"http://www.baidu.com");//获取内容url
curl_setopt($curl,CURLOPT_HEADER,1);//获取http头信息
curl_setopt($curl,CURLOPT_NOBODY,1);//不返回html的body信息
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);//返回数据流,不直接输出
curl_setopt($curl,CURLOPT_TIMEOUT,30); //超时时长,单位秒
curl_exec($curl);
$rtn= curl_getinfo($curl,CURLINFO_HTTP_CODE);
curl_close($curl);
return $rtn;
//$proxy="175.42.123.178:9999"; //代理格式
//if(GetHttpStatusCode($proxy)==200){
//echo $proxy.">>>>>代理可用";
//}else{
//echo $proxy.">>>>>代理已失效";
//}
}
/*封装返回json数据*/
    function jsonReturn($code = 200,$msg='',$data = null)
    {
        $Result['code'] = $code;
        $Result['msg'] = $msg ? $msg : '';
           //$Result['msg']  = iconv('GB2312', 'UTF-8', $Result['msg'] );
        $Result['msg']  = mb_convert_encoding($msg,'UTF-8','UTF-8');
       //  $Result['msg']= json_decode( $Result['msg']);
        if($data !== null) $Result['data'] = $data;
        if(($Result = json_encode($Result,JSON_UNESCAPED_UNICODE)) === false){
            switch(json_last_error()){
                case JSON_ERROR_NONE: exit('JSON_ERROR_NONE');
                case JSON_ERROR_DEPTH: exit('JSON_ERROR_DEPTH');
                case JSON_ERROR_STATE_MISMATCH: exit('JSON_ERROR_STATE_MISMATCH');
                case JSON_ERROR_CTRL_CHAR: exit('JSON_ERROR_CTRL_CHAR');
                case JSON_ERROR_SYNTAX: exit('JSON_ERROR_SYNTAX');
                case JSON_ERROR_UTF8: exit('JSON_ERROR_UTF8');
                case JSON_ERROR_RECURSION: exit('JSON_ERROR_RECURSION');
                case JSON_ERROR_INF_OR_NAN: exit('JSON_ERROR_INF_OR_NAN');
                case JSON_ERROR_UNSUPPORTED_TYPE: exit('JSON_ERROR_UNSUPPORTED_TYPE');
                case JSON_ERROR_INVALID_PROPERTY_NAME: exit('JSON_ERROR_INVALID_PROPERTY_NAME');
                case JSON_ERROR_UTF16: exit('JSON_ERROR_UTF16');
                default: exit('JSON_ERROR_UNKNOWN');
            }
        }
        // 返回JSON数据格式到客户端 包含状态信息
        header('Content-Type:application/json; charset=utf-8');
        //跨域请求
        //header('Access-Control-Allow-Origin:*');
       // exit($Result);
        //  $Result= json_decode($Result);
             exit($Result);
        //   return $Result;
     
}

function getSubstr($str, $leftStr, $rightStr)
{
    $left = strpos($str, $leftStr);
    //echo '左边:'.$left;
    $right = strpos($str, $rightStr,$left);
    //echo '<br>右边:'.$right;
    if($left < 0 or $right < $left) return '';
    return substr($str, $left + strlen($leftStr), $right-$left-strlen($leftStr));
}

 
//header('Content-type:text/json'); //判断GET值
if($_REQUEST['url']!="") //如果不为空
{
 $tk_url=$_REQUEST['url']; //赋值
//jsonReturn(1,'获取数据成功',$tk_url);
} else {
 jsonReturn(-1,'No url return Fail');
 exit(0);

}

$post_data=array('name' => '1234'); //pos数据
$method="GET";
$file=curlPost($tk_url,$data,$method);
//$file=mb_convert_encoding($file,'UTF-8','GBK');
$file = strip_tags($file); //过滤html
//sleep(1);
$p1 = 'UserModule';
$p2 = 'shortId';
//preg_match('/{"id":"(.*?)","shortId/',$file, $match);
$getuid=getSubstr($file,$p1,$p2);
//echo '$getuid的字节长度为:'.strlen($getuid);
$t2 = microtime(true);
//echo '耗时'.round($t2-$t1,3).'秒';
if(strlen( $getuid) < 100 )
{ 
       jsonReturn(1,'success '.round($t2-$t1,3),$getuid);
   } else {
       jsonReturn(-1,'No find '.round($t2-$t1,3));
}


//print_r($file);

运行结果如下:

赞 (0)