用PHP和VultrAPI为服务器添加一个流量监控页

2022-5-16 18:48| 发布者: Hocassian| 查看: 72| 评论: 0|原作者: 樱花庄的白猫

摘要:
C:\Users\Administrator\Downloads\2019-10-14-0-25-44-134316837361699-樱花庄的白猫 ねこ・しろ・ましろ-采集的数据-后羿采集器.html

标题

用PHP和Vultr API为服务器添加一个流量监控页

标题链接

https://2heng.xin/2017/09/26/php-vultr-bandwidth/

post-date

发布于 2017-09-26

post-meta

4,607 热度

评价数

4 条评论

分类

野生技术协会

正文

English Version of This Article

Vultr 提供了一套非常完善的API,其中涵盖了几乎所有你能在网页版管理面板使用的所有功能和查看的所有信息接口,详见Vultr API文档。于是我尝试用php做了一个通过API查询服务器流量的页面(因为我的服务器上挂着shadowsocksR服务,所以除了网站流量,VPN流量也是很大一笔)。

如果你看了Vultr的文档,你会发现里面只提供了curl的调用,比如基本的流量查询操作:

curl -H 'API-Key: YOURKEY' https://api.vultr.com/v1/server/bandwidth?SUBID=YOUR_SUBID

注意改操作只有被授权的IP下可以使用,可在这页下方添加授权的IP,不过不建议使用Allow All IP(这样任意IP都能通过你的API key对你的Vultr账号进行操作,很不安全。

稍微改进了一下Vultr的curl形式,发现可以这样将其变成普通url:

https://api.vultr.com/v1/server/bandwidth?SUBID=YOUR_SUBID&api_key=YOUR_API_KEY

于是就能简单通过url从服务器发起请求以获得一个吧包含查询信息的JSON返回。

以下是PHP调用Vultr API部分的源码(DEMO),如果需要完整的监控页面,你可以从文末下载:

<?php
error_reporting(E_ERROR);
ini_set("display_errors","Off");
$request = "https://api.vultr.com/v1/server/bandwidth?SUBID=YOUR_SUBID&api_key=YOUR_API_KEY";
//使用时需替换你的服务器的SUBID和你的API key
$serviceInfo = json_decode(file_get_contents($request));
$income = $serviceInfo->incoming_bytes;
$outgo = $serviceInfo->outgoing_bytes;
$sumin = 0;
$sumout = 0;
foreach ($income as $invalue) {
$sumin = $sumin + $invalue[1];
}
foreach ($outgo as $outvalue) {
$sumout = $sumout + $outvalue[1];
}
$data = array(
"plan_monthly_data" => 1073741824000,
//这里是服务器流量,1073741824000 bits = 1000 Gbits,这是我的配置
"data_counter" => $sumin + $sumout,
);
$json = json_encode($data);
file_put_contents("data.json", $json);
?>

下载完整源码,参考了Siphils的搬瓦工服务器监控代码。

Q.E.D.

作者

Mashiro


路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部