【已解答】宝塔使用的是最新8.0版本,通过api获取端口问题
使用api获取端口,想找到指定的端口,然后改为拒绝,可是,不管怎么改,只能获取到第一页的端口,后面改的p,不管用,代码如下:<?php
/**
* 宝塔API接口示例Demo
* 仅供参考,请根据实际项目需求开发,并做好安全处理
* date 2018/12/12
* author 阿良
*/
class bt_api {
private $BT_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxx";//接口密钥
private $BT_PANEL = "http://133.99.221.39:8888"; //面板地址
//如果希望多台面板,可以在实例化对象时,将面板地址与密钥传入
public function __construct($bt_panel = null, $bt_key = null){
if ($bt_panel) $this->BT_PANEL = $bt_panel;
if ($bt_key) $this->BT_KEY = $bt_key;
}
//示例取面板日志
public function GetLogs(){
//拼接URL地址
$url = $this->BT_PANEL . '/safe/firewall/get_rules_list';
//准备POST数据
$p_data = $this->GetKeyData(); //取签名
print_r($p_data );
$p_data['limit'] = 20;
$p_data['p'] = 2;
$p_data['query'] = "";
//请求面板接口
$result = $this->HttpPostCookie($url, $p_data);
//解析JSON数据
$data = json_decode($result, true);
return $data;
}
/**
* 构造带有签名的关联数组
*/
private function GetKeyData(){
$now_time = time();
$p_data = array(
'request_token' => md5($now_time . '' . md5($this->BT_KEY)),
'request_time' => $now_time
);
return $p_data;
}
/**
* 发起POST请求
* @param String $url 目标网址,带http://
* @param Array|String $data 欲提交的数据
* @param int $timeout 请求超时时间,默认为60秒
* @return string
*/
private function HttpPostCookie($url, $data, $timeout = 60){
//定义cookie保存位置
$cookie_file = './' . md5($this->BT_PANEL) . '.cookie';
if (!file_exists($cookie_file)){
$fp = fopen($cookie_file, 'w+');
fclose($fp);
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
// curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
}
//实例化对象
$api = new bt_api();
//获取面板日志
$r_data = $api->GetLogs();
//输出JSON数据到浏览器
echo json_encode($r_data);
?>
您好,您可以加下我们开发者QQ群,您添加时备注下问题,问题不清晰不然不会同意的
QQ群:471729998
开发者QQ群是不定时审核
页:
[1]