[PHP] 使用SolusVM API获取VPS流量数据

前几天突然心血来潮想给自己的Cydia源添加查看现在已用流量的功能(因为我放在限制流量的VPS上)。此VPS使用的是SolusVM控制面板,我在查阅了SolusVM官方的文档后写了一段代码,下面就分享出来吧~~

准备工作

在使用SolusVM API前,需要获取API Key和API Hash。其实很简单,登入VPS的控制面板后,点击API选项卡,生成一个接口就可以了。

文档

在正式使用代码之前推荐查看SolusVM的官方文档,可以更加清晰地了解代码的作用,官方文档中也写了一些基本的应用代码等。
官方文档:http://docs.solusvm.com/client_api

PHP代码

curl

SolusVM API支持GET以及POST方式来使用。但是在大部分VPS中使用POST方式会失败,因此推荐使用GET方式(把参数写在url里)。同时,大部分SolusVM控制面板使用的是ssl连接,使用file_get_contents函数会报错,因此您的空间必须要支持curl。

以下是封装的curl获取数据函数,应该是比较完善的curl封装了:

从API获取数据

现在可以使用curl从API获取数据了。

基本参数:https://< 控制面板域名>:5656/api/client/command.php?key=&hash=&action=&=true
其中Flags为可选参数,Action名、返回的数据格式等具体的还是请看官方文档啦。在这里我要获取流量数据,所以最后的参数为bw=true

将数据转换为数组

只获取了数据还是不够的,并不能被PHP所使用,因此使用正则匹配将数据转换为数组,之后使用$result[参数名]就可以调用了。

变量赋值

现在我们获取的流量值还是一连串地保存在变量$result['bw']中,原始数据的格式为:<bw>total,used,free,percentused</bw>。所以我们要使用list函数将值分别赋值到变量中。

单位转换

现在几乎接近成功啦!但是我们可以观察到,API返回的流量数值是一大串数字,单位是位(Bytes)。这么一大串的数字根本不便于观察嘛,因此我们还需要一段单位转换函数。

使用

好了,至此只要再写一段输出代码就完成了。下面贴上一段我在源内使用的代码。

小结

以上代码的最终效果可以在源主页查看到哦~

SolusVM是十分方便的VPS控制面板,而且API功能真的十分人性化。SolusVM API能实现的功能并不止这么点,它还能无需登录就实现启动、关闭、重启、查看VPS状态等功能,能使用好它绝对能节省大量的时间啊~~不过其他的功能还是要自己看官方文档慢慢摸索喽。

2 条评论

表情
:wink: :roll: :oops: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-? :* :) :( :!: 8-O 8* 8) /:tangled /:spoof05 /:spoof04 /:spoof03 /:spoof02 /:spoof01 /:spoof /:rwt /:rose /:neartears /:like /:lac /:impotence /:hematemesis /:harass /:fade /:doge /:cute /:chin /:candle /:bye /:beautiful /:P-( /:>-| /::| /::Z /::X /::T /::Q /::P /::O /::D /::@ /::> /:::D /::-| /::( /::$ /:--b /:,@P
昵称
  1. 卡丝Firefox 38.0 Windows 7

    代码写的实用

  2. seoFirefox 33.0 Windows 7 x64 Edition

    很专业的文章,点赞!