dacongyun.com
分享国内外服务器主机优惠信息

懒得搞了,需要的人自己扩展。 online的自己看过来

懒得搞了,需要的人自己扩展。 online的自己看过来

  1. <?php
  2.         //登陆https://console.online.net/en/api/access,那一串最黑的字符串
  3.         const API_CODE=’4279482ea1d251b8b40fd5ee83c1a’;
  4.         //自己设置的密码
  5.         const USERNAME=’123456′;
  6.         const PASSWORD=’123456′;
  7.         class online{
  8.                 static $host=’https://api.online.net/api/v1′;
  9.                 static $api=[
  10.                         ‘user’=>’/user’,
  11.                         ‘server’=>’/server’,
  12.                 ];
  13.                 public $key;
  14.                 public function __construct($key)
  15.                 {
  16.                         $this->key=$key;
  17.                 }
  18.                 function curl($url, $type = ‘get’, $data = [])
  19.                 {
  20.                         $url = $this->getApiUrl($url);
  21.                         $header = [
  22.                                 “Authorization:Bearer {$this->key}”
  23.                         ];
  24.                         $ch = curl_init();
  25.                         curl_setopt($ch, CURLOPT_URL, $url);
  26.                         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  27.                         curl_setopt($ch, CURLOPT_HEADER, 0);
  28.                         curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  29.                         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  30.                         curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  31.                         if ($type == ‘post’) {
  32.                                 curl_setopt($ch, CURLOPT_POST, 1);
  33.                                 curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  34.                         }
  35.                         $output = curl_exec($ch);
  36.                         curl_close($ch);
  37.                         $output= json_decode($output);
  38.                         if($output!=null)
  39.                                 return $output;
  40.                         else
  41.                                 return false;
  42.                 }
  43.                 function getApiUrl($key)
  44.                 {
  45.                         return online::$host.$key;
  46.                 }
  47.                 /**
  48.                  * 获取个人信息
  49.                  * @return bool|mixed
  50.                  */
  51.                 function getUser()
  52.                 {
  53.                         $result = $this->curl(online::$api[‘user’]);
  54.                         if(is_object($result) && !isset($result->error))
  55.                                 return $result;
  56.                         else
  57.                                 return false;
  58.                 }
  59.                 /**
  60.                  * 获取服务器列表,每台服务器都有详细信息
  61.                  * @return array|bool
  62.                  */
  63.                 function getServerList()
  64.                 {
  65.                         $result  = $this->curl(online::$api[‘server’]);
  66.                         $server_list = $result;
  67.                         if(empty($server_list))
  68.                         {
  69.                                 return false;
  70.                         }
  71.                         $data=[];
  72.                         foreach($server_list as $server)
  73.                         {
  74.                                         $arr = explode(‘/’,$server);
  75.                                         $server_id = $arr[4];
  76.                                         $data[]=$this->getServerInfo($server_id);
  77.                         }
  78.                         return $data;
  79.                 }
  80.                 /**
  81.                  * 获取单个服务器的信息
  82.                  * @param $id
  83.                  *
  84.                  * @return bool|mixed
  85.                  */
  86.                 function getServerInfo($id)
  87.                 {
  88.                         $result  = $this->curl(‘/server/’.$id);
  89.                         if(is_object($result) && !isset($result->error))
  90.                                 return $result;
  91.                         else
  92.                                 return false;
  93.                 }
  94.                 /**
  95.                  * 正常启动/救护启动
  96.                  * @param $id
  97.                  *
  98.                  * @return bool|mixed
  99.                  */
  100.                 function setBoot($id,$mode=’normal’)
  101.                 {
  102.                         $result  = $this->curl(‘/server/boot/’.$mode.’/’.$id);
  103.                 }
  104.                 /**
  105.                  重启
  106.                  * @param $id
  107.                  *
  108.                  * @return bool|mixed
  109.                  */
  110.                 function setReBoot($id)
  111.                 {
  112.                         $result  = $this->curl(‘/server/reboot/’.$id);
  113.                 }
  114.                 /**
  115.                  * 关机
  116.                  * @param $id
  117.                  */
  118.                 function shutdown($id)
  119.                 {
  120.                         $result  = $this->curl(‘/server/shutdown/’.$id);
  121.                 }
  122.         }
  123.         #业务流程开始
  124.         auth();
  125.         $obj = new online(API_CODE);
  126.         if(isset($_GET) && !empty($_GET))
  127.         {
  128.                 if($_GET[‘op’]==’normal’)
  129.                 {
  130.                         $id=intval($_GET[‘id’]);
  131.                         $obj->setBoot($id,’normal’);
  132.                         echo “<font color=’blue’>操作已执行,请耐心等待</font>”;
  133.                 }
  134.                 elseif($_GET[‘op’]==’rescue’)
  135.                 {
  136.                         $id=intval($_GET[‘id’]);
  137.                         $obj->setBoot($id,’rescue’);
  138.                         echo “<font color=’blue’>操作已执行,请耐心等待</font>”;
  139.                 }
  140.                 elseif($_GET[‘op’]==’reboot’)
  141.                 {
  142.                         $id=intval($_GET[‘id’]);
  143.                         $obj->setReboot($id);
  144.                         echo “<font color=’blue’>已发重启命令</font>”;
  145.                 }
  146.                 elseif($_GET[‘op’]==’shutdown’)
  147.                 {
  148.                         $id=intval($_GET[‘id’]);
  149.                         $obj->shutdown($id);
  150.                         echo “<font color=’blue’>已发关机命令</font>”;
  151.                 }
  152.                 //@todo:这里加各项操作,重装啥的,自己补充。。
  153.         }
  154.         $server_list = $obj->getServerList();
  155.         $url = ‘http://’.$_SERVER[“SERVER_NAME”].’/’.$_SERVER[“REQUEST_URI”];
  156.         foreach($server_list as $server)
  157.         {
  158.                 $link =[
  159.                         ‘重启’=>$url.’?op=reboot&id=’.$server->id,
  160.                         ‘关机’=>$url.’?op=shutdown&id=’.$server->id,
  161.                         ‘正常模式’=>$url.’?op=normal&id=’.$server->id,
  162.                         ‘救援模式’=>$url.’?op=rescue&id=’.$server->id,
  163.                 ];
  164.                 echo ‘<hr>’;
  165.                 echo ‘<br>机器ID:’.$server->id;
  166.                 echo ‘<br>产品规格:’.$server->offer;
  167.                 echo ‘<br>主机名:’.$server->hostname;
  168.                 echo ‘<br>操作系统:’.$server->os->name.’ ‘.$server->os->version;
  169.                 echo ‘<br>电源状态:’.$server->power;
  170.                 echo ‘<br>当前模式:’.$server->boot_mode;
  171.                 echo ‘<br>滥用报告邮箱:’.$server->abuse;
  172.                 echo ‘<br>机器位置:’.$server->location->datacenter.’ / ‘.$server->location->room.’ / ‘.$server->location->rack.’ / ‘.$server->location->block;
  173.                 echo ‘<br>网络信息:’.json_encode($server->network->ip);
  174.                 echo ‘<p>’;
  175.                 foreach($link as $k=>$v)
  176.                 {
  177.                         echo “<a href='{v}’>{$k}</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;”;
  178.                 }
  179.         }
  180.         function auth()
  181.         {
  182.                 $AUTH_USER = USERNAME;
  183.                 $AUTH_PASS = PASSWORD;
  184.                 header(‘Cache-Control: no-cache, must-revalidate, max-age=0’);
  185.                 $has_supplied_credentials = !(empty($_SERVER[‘PHP_AUTH_USER’]) && empty($_SERVER[‘PHP_AUTH_PW’]));
  186.                 $is_not_authenticated = (
  187.                         !$has_supplied_credentials ||
  188.                         $_SERVER[‘PHP_AUTH_USER’] != $AUTH_USER ||
  189.                         $_SERVER[‘PHP_AUTH_PW’]   != $AUTH_PASS
  190.                 );
  191.                 if ($is_not_authenticated) {
  192.                         header(‘HTTP/1.1 401 Authorization Required’);
  193.                         header(‘WWW-Authenticate: Basic realm=”Access denied”‘);
  194.                         exit;
  195.                 }
  196.         }

复制代码

网友回复:

注册 萌新弱弱的问:这是什么

Eric.c 我猜是自己写的一个管理方式,比如我 买10台租出去,但是租客需要重启什么的,那么这就是个管理工具

llmwxt 牛逼,自制控制面板

bob1987 o l机器管理面板啊

tomcb ol的控制服务器重启、开机的API。

llmwxt 牛逼,6666

葱油饼董事长 本论坛藏龙卧虎,佩服!各位都太牛了,大开眼界啊!

suantong 为什么你这么优秀

ApkB 牛逼,6666

注册 厉害了,真厉害

注册 厉害了,大佬,成功使用

wifitry MARK一下,但是不打算用了

zxq1998 其实我是想卖3欧,

openos 厉害了666

Eric.c 不可能就这几行啊,大佬厉害

Lebron 谢谢分享刚好有需求

jpfree 成功了。。感谢分享。

nuu980 矮油、、非常感谢楼主的分享!支持…

yanaxiao 大佬牛XXXX

注册 6666

注册 这个牛B

掩耳盗铃 很好很强大、

up93 秀儿是你吗?

yukisan 牛逼大佬, 收藏了!

_____________Cc 重启      关机      正常模式      救援模式      nbsp;复制代码 这是怎么回事啊,前面IP等都获取到了,但不能操作

stonesnake                         echo “{$k}      “; 复制代码 这里少写了一个$。改了后可以运行了,就是不知道能不能重启。。。 要加个重启操作系统的选项UB18就行,怎么搞啊

jpfree 秀儿请坐

jpfree 果然PHP是世界上最好的语言

snipersong 天秀

注册 @Eric.c  大佬这几个按钮好像不起作用的 27楼那个bug我也改了

注册 估计是bbs过滤掉某些字符了。 目前online 没有机器了,自己调整。

Uler 大佬能放个源码附件吗

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人支付接口

云免签H5支付