前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用mcpe-ping(mping)在线查询MCBE服务器状态

使用mcpe-ping(mping)在线查询MCBE服务器状态

作者头像
iVampireSP.com
发布2020-04-29 17:20:13
2.5K0
发布2020-04-29 17:20:13
举报
文章被收录于专栏:iVampireSPの物语iVampireSPの物语

纯JSON版

因*腐竹的请求,所以CodeHz给了个查询MCBE的接口(不知道是不是他做的)。全名叫mcpe-ping GitHub上有个,估计是CodeHz二开的,原项目:mcpe-ping

同样,先嫖一台服务器,并用最快的速度部署。我用Ubuntu做演示,Debian的apt里没npm包 ,下面是CodeHz大大给的接口。

1560946758-mping下载

第一步,登录到服务器并su,更新软件源(废话)

代码语言:javascript
复制
apt update

然后,部署nodejs环境

把mping.zip解压到你喜欢的位置,然后cd进去搞事情

代码语言:javascript
复制
apt install nodejs npm -y
npm install n -g
n stable -g

然后cd到mping的目录,确保是解压后的,有两个文件,分别是main.js和package.json,使用下面命令安装依赖。

代码语言:javascript
复制
npm install --production

然后执行

代码语言:javascript
复制
screen nodejs main.js

然后浏览器输入http://IP:1234/要查看的mcbe服务器ip/端口 如果打不开,请行通1234端口,端口可以到main.js最后一行更改。然而根据我的习惯,在纯服务器系统上,肯定要改成80。但是为了下面步骤,我还是选择了1234

修改端口

例如lbsg的,我们只要在你的浏览器网址栏输入 http://xxxx:1234/ping/sg.lbsg.net/19132

然后你会惊喜的发现查出来了

但是有个问题,为什么是json格式?

因为,,脚本就这样的。你可以使用json阅读器或者把json转成JavaScript对象输出在网页上,或者用酷Q Httpapi插件来显示json。对于这些,,我也不会 :huaji:

不过,这里有个 json在线视图查看器

如果你开发出来了显示json对象的工具,别忘开源哈。好东西要分享嘛。一定要告诉我~

JSON+明文输出版

因*腐竹的再次要求,CodeHz重写了一遍代码,不仅保留了json格式,在新加了直接以文本型式输出的功能。

注意,需要重新npm install –production !!

1561092443-mping-2下载

使用方法

name

currentPlayers

maxPlayers

如果想要显示json格式,那么只要把网址端口后面的去掉就行。

不过,这里遇到个问题:如果是https的网页嵌套一个IP,那iframe岂不是会被chrome拦截?如果url自动重写为https那么直接拒绝访问,这咋办呢?

这时候,就要看万能的反向代理了,我选则宝塔,因为申请ssl很方便,配置起来也很简单(就是懒,少走弯路)。编译安装nginx(推荐)

签发ssl证书,没备案的用dns验证

添加反向代理,并到防火墙放行1234端口 (改成你的端口)

代码示例 lbsg

HTML:

代码语言:javascript
复制
<html>
<head>
<title>xxx服务器状态</title>
</head>
<body>
<p>服务器名称</p>
<iframe frameborder="no" border="0" marginwidth="0" marginheight="0" width=20 height=12 scrolling="no" src="https://proxy.loliday.cn/mping/ping/sg.lbsg.net/19132/name"></iframe>
<p>服务器当前在线</p>
<iframe frameborder="no" border="0" marginwidth="0" marginheight="0" width=20 height=12 scrolling="no" src="https://proxy.loliday.cn/mping/ping/sg.lbsg.net/19132/currentPlayers"></iframe>
<p>服务器最大人数</p>
<iframe frameborder="no" border="0" marginwidth="0" marginheight="0" width=20 height=12 scrolling="no" src="https://proxy.loliday.cn/mping/ping/sg.lbsg.net/19132/maxPlayers"></iframe>
</body>
</html>

效果

服务器名称

服务器当前在线

服务器最大人数

因原腐竹要求,不公开接口。

你们可爱的博主已经公开的自己的接口,不要乱攻击就行~

公开一个mcpe-ping接口(自建)

mping 自带ui+隐藏IP版

没错,因为*腐竹的再再再次要求,CodeHz大大又又又开发了一个版本,并且开源啦(好像我擅自放源码了),仓库地址:GitHub 为他Star吧!

使用方法:git项目,然后重新npm install 然后再nodejs main.js

如果是安装了宝塔的ubuntu18.04的话,你会发现:npm没了!

这是为什么呢,因为他和宝塔安装的软件包起冲突了。有libssl啥的,反正我没管它,强制安装!

(推荐你们不要这么干,就算干了出事也别找我)

上述命令如下

代码语言:javascript
复制
git clone https://github.com/codehz/mcpe-ping-dashboard
cd mcpe-ping-dashboard
apt install npm -y //慎重
npm install

然后呢?看看效果图

实例效果图(https动态标题可用,只是chrome报不安全而已,http正常)

CodeHz给的教程:

配置文件内容大概这样:

代码语言:javascript
复制
[
  {
    "src": "nether games",
    "logo": "https://minecraftpocket-servers.com/server/36864/banner-36864-1492604878.png",
    "host": "play.nethergames.org",
    "port": 19132
  },
  {
    "src": "Hangout",
    "logo": "https://minecraftpocket-servers.com/server/82568/banner-82568-1557693365.gif",
    "host": "play.hangout.pe",
    "port": 19132
  }
]
代码语言:javascript
复制
CodeHz ⟁, [2019/6/21 下午8:02]
src其实是标题(

CodeHz ⟁, [2019/6/21 下午8:02]
因为有些时候motd不是名字(还有加载失败的情况(

CodeHz ⟁, [2019/6/21 下午7:59]
用法

CodeHz ⟁, [2019/6/21 下午7:59]
改config/example.json (或者自己新建一个)

CodeHz ⟁, [2019/6/21 下午7:59]
然后安装(npm install)运行后,访问 /servers/example

附加(废话):

代码语言:javascript
复制
logo是图片文件url
host是服务器IP
port是服务器端口

其实吧,这个不能算真正的隐藏IP,毕竟暴露了查询服务器的IP,除非用cf反向代理下。但是这样总比我那个iframe的好。

附:用MD或MDUI的卡片写更好看。

自动刷新

mping目录下的view文件夹里,编辑里面唯一的一个文件,在<title></title>下一行输入

代码语言:javascript
复制
<meta http-equiv="refresh" content="5"> //5是秒数

解决https报不安全

mping目录下的view文件夹里,编辑里面唯一的一个文件,把里面的所有http改成https

apache反向代理

是的,你没看错,是阿帕奇,不是EngineX。为什么呢?因为我不会EngineX。

是这样的,那位腐竹不小心重装了系统,所以又要重新配置了。这次不用宝塔,用apache2

注意,请确保是纯净环境!否则不要使用该步骤

安装阿帕奇,启用反向代理,ssl模组,启用ssl站点。编辑ssl站点

代码语言:javascript
复制
sudo apt install apache2 -y
sudo a2enmod proxy proxy_ajp proxy_balancer proxy_connect proxy_express proxy_fcgi proxy_fdpass proxy_ftp proxy_hcheck proxy_html proxy_http proxy_http2 proxy_scgi proxy_wstunnel ssl
sudo a2ensite default-ssl.conf
sudo vim /etc/apache2/site-enabled/default-ssl.conf

把<VirtualHost _DEFAULT:443>(好像是这个)中的_DEFALUT改成*,在下面插入这个下面的代码

代码语言:javascript
复制
ServerName 你的域名
        <Proxy *>
                Order deny,allow
                Allow from all
        </Proxy>
        <Location />
          ProxyPass http://localhost:1234/
          ProxyPassReverse http://localhost:1234/
        </Location>

http://localhost:1234/ 是反向代理的域名和目录。改成你自己的。

接着往下翻,找到类似下面代码,把pem和key目录输入为自己的,例子如下:

代码语言:javascript
复制
            SSLCertificateFile      /home/ssl/123.pem
            SSLCertificateKeyFile /home/ssl/123.key

最后,重启apache2。

代码语言:javascript
复制
systemctl restart apache2

体验吧!

好了,不管你有没有看懂。我,,累了。

对接到机器人

就以晨风为例子,怎么用我想你应该也知道的。

代码语言:javascript
复制
查询 FantasySky&SakuraPuare.Tech服务器当前在线【换行】【显示网址内容http://mping.sp.mchim.cn/ping/dx.fs.happy-friends.ga/19132/currentPlayers】/【显示网址内容http://mping.sp.mchim.cn/ping/dx.fs.happy-friends.ga/19132/maxPlayers】【换行】(当前在线/最大玩家;缓存1分钟.)

实例

最后放上实例:点击进入

教程就到这里,感谢各位支持!感谢那位腐竹和CodeHz!转载请注明来源,谢谢合作。

[toc]

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-06-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 纯JSON版
  • JSON+明文输出版
  • 代码示例 lbsg
  • mping 自带ui+隐藏IP版
  • 自动刷新
  • 解决https报不安全
  • apache反向代理
    • 对接到机器人
    • 实例
    相关产品与服务
    ICP备案
    在中华人民共和国境内从事互联网信息服务的网站或APP主办者,应当依法履行备案手续。腾讯云为您提供高效便捷的 ICP 备案服务。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档