跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 前段时间有个online的api管理服务器谁收藏了
未分類
28 2 月 2020

前段时间有个online的api管理服务器谁收藏了

Uler 大佬有话说 : 2019-12-1 15:19:40

前段时间有个online的api管理服务器谁收藏了

本帖最后由 Uler 于 2019-12-1 17:12 编辑

前段时间有个online的api管理服务器php谁收藏了,找了一圈没找到

yanaxiao 大佬有话说 : 2019-12-1 15:43:59

<?php

      //登陆https://console.online.net/en/api/access,那一串最黑的字符串
      const API_CODE=’4279482ea1d251b8b40fd5ee83c1a’;

      //自己设置的密码
      const USERNAME=’123456′;
      const PASSWORD=’123456′;

      class online{

                static $host=’https://api.online.net/api/v1′;
                static $api=[
                        ‘user’=>’/user’,
                        ‘server’=>’/server’,
                ];

                public $key;
                public function __construct($key)
                {
                        $this->key=$key;
                }

                function curl($url, $type = ‘get’, $data = [])
                {

                        $url = $this->getApiUrl($url);
                        $header = [
                              "Authorization:Bearer {$this->key}"
                        ];

                        $ch = curl_init();
                        curl_setopt($ch, CURLOPT_URL, $url);
                        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                        curl_setopt($ch, CURLOPT_HEADER, 0);
                        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
                        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

                        if ($type == ‘post’) {
                              curl_setopt($ch, CURLOPT_POST, 1);
                              curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
                        }
                        $output = curl_exec($ch);
                        curl_close($ch);
                        $output= json_decode($output);
                        if($output!=null)
                              return $output;
                        else
                              return false;
                }

                function getApiUrl($key)
                {
                        return online::$host.$key;
                }

                /**
               * 获取个人信息
               * @return bool|mixed
               */
                function getUser()
                {
                        $result = $this->curl(online::$api[‘user’]);
                        if(is_object($result) && !isset($result->error))
                              return $result;
                        else
                              return false;

                }

                /**
               * 获取服务器列表,每台服务器都有详细信息
               * @return array|bool
               */
                function getServerList()
                {
                        $result= $this->curl(online::$api[‘server’]);
                        $server_list = $result;
                        if(empty($server_list))
                        {
                              return false;
                        }

                        $data=[];
                        foreach($server_list as $server)
                        {
                                        $arr = explode(‘/’,$server);
                                        $server_id = $arr;
                                        $data[]=$this->getServerInfo($server_id);
                        }
                        return $data;
                }

                /**
               * 获取单个服务器的信息
               * @param $id
               *
               * @return bool|mixed
               */
                function getServerInfo($id)
                {
                        $result= $this->curl(‘/server/’.$id);
                        if(is_object($result) && !isset($result->error))
                              return $result;
                        else
                              return false;

                }

                /**
               * 正常启动/救护启动
               * @param $id
               *
               * @return bool|mixed
               */
                function setBoot($id,$mode=’normal’)
                {
                        $result= $this->curl(‘/server/boot/’.$mode.’/’.$id);
                }

                /**
               重启
               * @param $id
               *
               * @return bool|mixed
               */
                function setReBoot($id)
                {
                        $result= $this->curl(‘/server/reboot/’.$id);
                }

                /**
               * 关机
               * @param $id
               */
                function shutdown($id)
                {
                        $result= $this->curl(‘/server/shutdown/’.$id);
                }

      }

      #业务流程开始
      auth();

      $obj = new online(API_CODE);
      if(isset($_GET) && !empty($_GET))
      {
                if($_GET[‘op’]==’normal’)
                {
                        $id=intval($_GET[‘id’]);
                        $obj->setBoot($id,’normal’);
                        echo "<font color=’blue’>操作已执行,请耐心等待</font>";

                }
                elseif($_GET[‘op’]==’rescue’)
                {
                        $id=intval($_GET[‘id’]);
                        $obj->setBoot($id,’rescue’);
                        echo "<font color=’blue’>操作已执行,请耐心等待</font>";

                }
                elseif($_GET[‘op’]==’reboot’)
                {
                        $id=intval($_GET[‘id’]);
                        $obj->setReboot($id);
                        echo "<font color=’blue’>已发重启命令</font>";

                }
                elseif($_GET[‘op’]==’shutdown’)
                {
                        $id=intval($_GET[‘id’]);
                        $obj->shutdown($id);
                        echo "<font color=’blue’>已发关机命令</font>";

                }

                //@todo:这里加各项操作,重装啥的,自己补充。。

      }

      $server_list = $obj->getServerList();

      $url = ‘http://’.$_SERVER["SERVER_NAME"].’/’.$_SERVER["REQUEST_URI"];
      foreach($server_list as $server)
      {
                $link =[
                        ‘重启’=>$url.’?op=reboot&id=’.$server->id,
                        ‘关机’=>$url.’?op=shutdown&id=’.$server->id,
                        ‘正常模式’=>$url.’?op=normal&id=’.$server->id,
                        ‘救援模式’=>$url.’?op=rescue&id=’.$server->id,
                ];

                echo ‘<hr>’;
                echo ‘<br>机器ID:’.$server->id;
                echo ‘<br>产品规格:’.$server->offer;
                echo ‘<br>主机名:’.$server->hostname;
                echo ‘<br>操作系统:’.$server->os->name.’ ‘.$server->os->version;
                echo ‘<br>电源状态:’.$server->power;
                echo ‘<br>当前模式:’.$server->boot_mode;
                echo ‘<br>滥用报告邮箱:’.$server->abuse;
                echo ‘<br>机器位置:’.$server->location->datacenter.’ / ‘.$server->location->room.’ / ‘.$server->location->rack.’ / ‘.$server->location->block;
                echo ‘<br>网络信息:’.json_encode($server->network->ip);

                echo ‘<p>’;
                foreach($link as $k=>$v)
                {
                        echo "<a href='{v}’>{$k}</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
                }
      }

      function auth()
      {
                $AUTH_USER = USERNAME;
                $AUTH_PASS = PASSWORD;
                header(‘Cache-Control: no-cache, must-revalidate, max-age=0’);
                $has_supplied_credentials = !(empty($_SERVER[‘PHP_AUTH_USER’]) && empty($_SERVER[‘PHP_AUTH_PW’]));
                $is_not_authenticated = (
                        !$has_supplied_credentials ||
                        $_SERVER[‘PHP_AUTH_USER’] != $AUTH_USER ||
                        $_SERVER[‘PHP_AUTH_PW’]   != $AUTH_PASS
                );
                if ($is_not_authenticated) {
                        header(‘HTTP/1.1 401 Authorization Required’);
                        header(‘WWW-Authenticate: Basic realm="Access denied"’);
                        exit;
                }
      }

yanaxiao 大佬有话说 : 2019-12-1 16:23:21

Uler 大佬有话说 : 2019-12-1 16:07
请问设置了这个
怎么上不去

一个是用户名,一个是密码,而且这个只是登录页面用的。

Uler 大佬有话说 : 2019-12-1 15:39:17

顶啊

雷电法王杨永信 大佬有话说 : 2019-12-1 15:41:13

没人理你尴尬不。         

Uler 大佬有话说 : 2019-12-1 15:46:13

yanaxiao 大佬有话说 : 2019-12-1 15:43

万分感谢

Uler 大佬有话说 : 2019-12-1 16:07:26

yanaxiao 大佬有话说 : 2019-12-1 15:43

请问设置了这个      //自己设置的密码
      const USERNAME=’123456′;
      const PASSWORD=’123456′;
怎么上不去

Uler 大佬有话说 : 2019-12-1 17:15:48

yanaxiao 大佬有话说 : 2019-12-1 15:43

这个好像有点问题,echo "<a href='{v}’>{$k}</a>这个v变量少$个符号
改完后还有关机,重启,救援模式那几个命令没作用,
请问这个原帖收藏了吗,我去看一下

yanaxiao 大佬有话说 : 2019-12-1 17:32:52

Uler 大佬有话说 : 2019-12-1 17:15
这个好像有点问题,echo "{$k}这个v变量少$个符号
改完后还有关机,重启,救援模式那几个命令没作用,
请 …

找不到了,你看下另外一位大佬的。这个我没学会。
https://git.bani99.com/bani99/online

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具