Giter VIP home page Giter VIP logo

x-prober's Introduction

X Prober preview

😎 X Prober

This is a probe program for PHP environment. It can show your server information and readable easily.

And the most important thing is that it's like 📱 iPhone X/XS/XS Max/XR/11/11 Pro/11 Pro Max !

Backers on Open Collective Sponsors on Open Collective

License

  • GPL-3.0

Online demo

Download and Usage

  • Click INN STUDIO mirror or GitHub mirror to download the probe file.
  • You will get a single file of x.php and upload it to your server.
  • Access x.php via http browser.

Required environment

  • Compile environment: PHP 8.1+
  • Production environment: PHP 5.4+
  • Browser support: Chrome / Firefox / Edge / Android
  • OS support: Linux / Windows(basic features)

Extensions

  • In preparation...

Development

  • Fork project.
  • Fetch your project.
  • Install node modules: $ npm install.
  • Watch scripts: $ npm run dev.
  • Generate composer vendor: $ composer install; composer dumpautoload -o.
  • Compile PHP: $ npm run dev:php
  • Access http://localhost:8000 or http://path/to/.tmp/index.php.
  • Generate languages: $ npm run lang to remake ./languages/lang.pot language template and build *.po.
  • Enjoy it. 😄

Compile production

  • Compile JS: $ npm run build.
  • Compile PHP: $ npm run build:php.
  • Access: http://localhost:8000 or http://path/to/dist/prober.php.

Help and translate more languages

  • Fork project.
  • Fetch your project.
  • Use Poedit to create your language from ./languages/lang.pot language template file and translates it.
  • Save your language file (like: en_US.po) into ./languages.
  • Push your changes.
  • Pull Request and thank you. 😘

Note for participate in contribution

  • Code compatible with PHP 5.3+

Contributors

Contributors

Backers

Thank you to all our backers! 🙏 [Become a backer]

Contributors

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

  • Thanks VPSPlayer.com - 2021-01-16 - 199 RMB
  • Thanks 1529***576 - 2019-04-04 – 150 RMB
  • Thanks Vultr.com - 2019-03-13 - 50 Dollars

TODO

  • Temperature sensor.
  • More languages with Poedit.
  • Detail benchmark result.
  • Add Email send testing.
  • Add network speed testing.
  • Add more servers benchmark.
  • Add PING feature.

Keywords

X-Prober/PHP 探针/X 探针/刘海探针

x-prober's People

Contributors

dependabot[bot] avatar jfcherng avatar kleveralt avatar kmvan avatar monkeywithacupcake avatar urusai-me avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

x-prober's Issues

olink-frk server benchmark (AMD 3700x php8.0)

867HASH + 971INT + 970FLOAT + 766IO = 3,574
869HASH + 971INT + 971FLOAT + 758IO = 3,569
869HASH + 971INT + 971FLOAT + 756IO = 3,567
870HASH + 971INT + 972FLOAT + 761IO = 3,574
868HASH + 972INT + 971FLOAT + 765IO = 3,576

Statistics in Network Stats will not update after exceeding 2G

  • OS: Raspbian (Kernel Version: 4.19)
  • PHP version: 7.0.33

*** Your content ***

123

When the network traffic exceeds 2G, neither real-time traffic statistics nor total traffic statistics will update.
当网络流量超过2G之后,无论是实时流量统计,还是总流量统计都不会再更新。

Note: I have only seen this situation on the Raspberry Pi 3B(armv7). The Nginx version is 1.16.0.
注:我只在树莓派3B上看到过这种情况,Nginx版本是1.16。

英语水平有限,我尽量去写,中英文表达不一致的地方以中文为准,打扰了。

Brower crash after ajax fetch

  • OS: Centos 7.8.2003

  • PHP version:
    PHP 7.4.6 (cli) (built: May 12 2020 08:09:15) ( NTS )
    Copyright (c) The PHP Group
    Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.6, Copyright (c), by Zend Technologies

  • Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36

Console output

x.php?action=script&v=4.8:1 TypeError: Cannot read property 'rx' of undefined
    at x.php?action=script&v=4.8:1
    at Array.map (<anonymous>)
    at kn.render (x.php?action=script&v=4.8:1)
    at ye (x.php?action=script&v=4.8:1)
    at x.php?action=script&v=4.8:1
    at ae (x.php?action=script&v=4.8:1)
    at e.track (x.php?action=script&v=4.8:1)
    at kn.u [as render] (x.php?action=script&v=4.8:1)
    at La (x.php?action=script&v=4.8:1)
    at Ra (x.php?action=script&v=4.8:1)

x.php?action=script&v=4.8:1 [mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: 'Reaction[kn.render()]' TypeError: Cannot read property 'rx' of undefined
    at x.php?action=script&v=4.8:1
    at Array.map (<anonymous>)
    at kn.render (x.php?action=script&v=4.8:1)
    at ye (x.php?action=script&v=4.8:1)
    at x.php?action=script&v=4.8:1
    at ae (x.php?action=script&v=4.8:1)
    at e.track (x.php?action=script&v=4.8:1)
    at kn.u [as render] (x.php?action=script&v=4.8:1)
    at La (x.php?action=script&v=4.8:1)
    at Ra (x.php?action=script&v=4.8:1)

SpartanHost/SSD/PHP7.3 Benchmarks

X-Prober version: 2.4.1

image
image
image
image
image

3266 - hash: 832 / intLoop: 956 / floatLoop: 957 / ioLoop: 521
3327 - hash: 830 / intLoop: 958 / floatLoop: 957 / ioLoop: 582
3307 - hash: 827 / intLoop: 957 / floatLoop: 953 / ioLoop: 570
3303 - hash: 831 / intLoop: 957 / floatLoop: 956 / ioLoop: 559
3329 - hash: 835 / intLoop: 958 / floatLoop: 957 / ioLoop: 579

Middle value: 3327 - hash: 830 / intLoop: 958 / floatLoop: 957 / ioLoop: 582

[BUG] Real time update reporting HTTP 401 error

  • OS: Debian 10.0u1
  • PHP version: 7.3.9

Just updated from version 2.1 to 3.3 but got some errors.
My website has a classic HTTP authentication (provided by nginx) and it was working fine in version 2.1
but in version 3.3 after I input the username and password on browser I can see the main page of the prober loaded but there is an alert saying "errors on gathering information, please refresh the page" (I am using simplified chinese so the english version may be different) and real time updating is not working. I checked dev tools of my browser and it says your /?action=fetch encounters a HTTP 401 error (authentication error). It was working fine in version 2.1 so I suppose this is a problem of the new version. Thank you for your work.

地理位置和服务器 IP 地址问题

Is your feature request related to a problem? Please describe.

  1. 服务器 IP 地址仅展示 IPv4 地址,建议增加判断服务器是否支持 IPv6 地址的功能,若支持则同时展示 IPv6 地址,也可以判断用户使用 IPv4 还是 IPv6 访问,并据此选择一个展示。
  2. 获取地理位置功能建议。

Describe the solution you'd like

  1. 获取服务器的 IPv6 地址,并判断其是不是 fe80:: 或者其它类似的开头的本地链路 IPv6 地址,如果存在非本地链路 IPv6 地址,则说明获取到了 IPv6 地址。
  2. 可以参照一下以下代码,不过这个是查文档就能查出来的,我没有查看这个项目的代码,所以只能给出一个几乎没用的建议:
function getPosition(successCallback: PositionCallback, errorCallback: PositionErrorCallback, enableHighAccuracy: boolean) {
	const options = { enableHighAccuracy };
	navigator.geolocation.getCurrentPosition(successCallback, errorCallback, options);
}

Describe alternatives you've considered

None.

Additional context

None.

[BUG] 服务器跑分显示为负数

  • OS: Windows 10 1903
  • PHP version: 7.3.9
  • WebServer: IIS10

** Report content **
跑分不正常,输出如下:

我的服务器 848HASH+ 908INT+ 884FLOAT+ -15,865IO= -13,225

同样问题出现在作者的演示站点,输出如下:

我的服务器 409HASH+ -443INT+ -596FLOAT+ -365IO= -995

内存Memory占用是不是不准确

  • OS:debian9
  • PHP version: php-8.0.0-fpm-alpine

docker stats (host)

CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
895fe601792d        mengdodo_php        0.04%               30.09MiB / 7.666GiB   0.38%               8.7MB / 32.2MB      0B / 8.19kB         4

top (host)

Tasks: 109 total,   1 running, 108 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  1.6 sy,  0.0 ni, 98.4 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   7850.4 total,   4378.0 free,    457.2 used,   3015.2 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   7042.0 avail Mem

x.php (X-Prober 6.5)

image

question

根据我观察,x.php显示内存一直在上涨,从一开始的690M,到700M,到现在的800M,且跟宿主机内存占用不匹配,请问这是个BUG吗,还是我观察的方式不对。
@kmvan According to my observation, x.php shows that the memory has been rising, from 690m at the beginning, to 700m, to 800m now, and it does not match the host's memory occupation. Is this a bug, or is the way I observe wrong ?

[BUG] stop at loading...

  • OS:centos
  • PHP version:7.3

** Report content **
the page stop at 'Loading...' from version 4.2 to 4.8
there should be something wrong due to Reduce JS file size

[Notice] Project 3.0 plan.

New features

  • React front-end code, no any PHP code.
  • Use MobX to manage state.
  • Use Component styled.
  • Restful API for fetching.
  • Remote server benchmarks data.
  • Auto-update PHP/Nginx latest version information.
  • Server location information
  • Visitor location information

[Feature request]add distributed server

Is your feature request related to a problem? Please describe.

Describe the solution you'd like

Describe alternatives you've considered

Additional context

stuck in loading

  • OS: Centos
  • PHP version:7.4.6
  • Client Browser: Edge

The console in edge shows that
image
image

BTW it works fine on my chrome in the same device

[BUG] 宝塔面板环境无法显示磁盘容量

  • OS: CentOS7.6+宝塔面板6.8.8
  • PHP version: 7.3.1

** Report content **
我VPS使用的是CentOS7.6+宝塔面板6.8.8+PHP7.3.1,所有能升级的包括内核都是最新的,磁盘容量却无法显示。
但我自己写的探针用disk_total_space('.')和disk_free_space('.')函数可以轻易获取磁盘空间,没有这个问题。希望作者检查下,非常感谢!

你的探针:https://free3.astrolab.tk
我的探针:https://free3.astrolab.tk/status.php

VPSPlayer server benchmarks

http://103.44.238.36/x.php

537HASH + 908INT + 908FLOAT + 380IO = 2,733
816HASH + 961INT + 961FLOAT + 508IO = 3,246
564HASH + 900INT + 901FLOAT + 515IO = 2,880
532HASH + 921INT + 964FLOAT + 542IO = 2,959
532HASH + 900INT + 900FLOAT + 491IO = 2,823

Warning: A non-numeric value encountered in /data/htdocs/x.php on line 24

( ! ) Warning: A non-numeric value encountered in /data/htdocs/x.php on line 24
Call Stack

Time Memory Function Location

1 0.3747 435912 {main}( ) .../x.php:0
2 0.3748 453488 InnStudio\Prober\Components\Bootstrap\Bootstrap->__construct( ) .../x.php:206
3 0.3748 453496 InnStudio\Prober\Components\Bootstrap\Bootstrap->getDisplay( ) .../x.php:34
4 0.3750 491752 InnStudio\Prober\Components\Bootstrap\Bootstrap->getFieldsets( ) .../x.php:63
5 0.3963 534936 InnStudio\Prober\Components\PhpInfo\PhpInfo->display( ) .../x.php:34
6 0.3963 534936 InnStudio\Prober\Components\PhpInfo\PhpInfo->getContent( ) .../x.php:76
7 0.3964 534968 InnStudio\Prober\Components\Helper\HelperApi::getErrNameByCode( ) .../x.php:79

1Gbits.com VPS benchmarks.

Results: 512M/1Core/KVM

On 2019-03-07
hash: 810 / intLoop: 953 / floatLoop: 952 / ioLoop: 780
hash: 792 / intLoop: 947 / floatLoop: 947 / ioLoop: 791
hash: 804 / intLoop: 953 / floatLoop: 952 / ioLoop: 793
hash: 812 / intLoop: 952 / floatLoop: 951 / ioLoop: 798
hash: 808 / intLoop: 953 / floatLoop: 953 / ioLoop: 791

(810+804+808)/3 + (953+952+953)/3 + (952+952+951)/3 + (791+793+791)/3 = 3503
807 + 953 + 952 + 792 = 3504

On 2019-03-08
hash: 810 / intLoop: 948 / floatLoop: 952 / ioLoop: 782
hash: 811 / intLoop: 953 / floatLoop: 953 / ioLoop: 792
hash: 808 / intLoop: 952 / floatLoop: 952 / ioLoop: 794
hash: 764 / intLoop: 953 / floatLoop: 953 / ioLoop: 801
hash: 804 / intLoop: 953 / floatLoop: 953 / ioLoop: 802

[BUG] Loading loop cause Uncaught SyntaxError: Unexpected token ':'

  • OS: Centos 8
  • PHP version: 7.4.9
  • Browser: Chrome latest stable

Expected behavior

Loading successful without problem

Actual behavior

The page showing loading always,even refresh.

Other description

there are few errors in console :

Uncaught SyntaxError: Unexpected token ':'
prober.php?action=script&v=6.1:1 Uncaught TypeError: Cannot read property 'redis' of undefined
    at Module.<anonymous> (prober.php?action=script&v=6.1:1)
    at n (prober.php?action=script&v=6.1:1)
    at prober.php?action=script&v=6.1:1
    at prober.php?action=script&v=6.1:1
(anonymous) @ prober.php?action=script&v=6.1:1
n @ prober.php?action=script&v=6.1:1
(anonymous) @ prober.php?action=script&v=6.1:1
(anonymous) @ prober.php?action=script&v=6.1:1
prober.php?action=script&v=6.1:1 Uncaught (in promise) TypeError: Cannot read property 'length' of undefined
    at J.<anonymous> (prober.php?action=script&v=6.1:1)
    at Generator.next (<anonymous>)
    at ne (prober.php?action=script&v=6.1:1)
    at a (prober.php?action=script&v=6.1:1)
    at prober.php?action=script&v=6.1:1
    at new Promise (<anonymous>)
    at J.fetch (prober.php?action=script&v=6.1:1)
    at new J (prober.php?action=script&v=6.1:1)
    at Module.<anonymous> (prober.php?action=script&v=6.1:1)
    at n (prober.php?action=script&v=6.1:1)
(anonymous) @ prober.php?action=script&v=6.1:1
ne @ prober.php?action=script&v=6.1:1
a @ prober.php?action=script&v=6.1:1
(anonymous) @ prober.php?action=script&v=6.1:1
(anonymous) @ prober.php?action=script&v=6.1:1
J @ prober.php?action=script&v=6.1:1
(anonymous) @ prober.php?action=script&v=6.1:1
n @ prober.php?action=script&v=6.1:1
(anonymous) @ prober.php?action=script&v=6.1:1
(anonymous) @ prober.php?action=script&v=6.1:1
prober.php?action=script&v=6.1:1 Uncaught (in promise) TypeError: Cannot read property 'authorization' of undefined
    at n (prober.php?action=script&v=6.1:1)
    at next (<anonymous>)
    at ge (prober.php?action=script&v=6.1:1)
    at a (prober.php?action=script&v=6.1:1)
    at prober.php?action=script&v=6.1:1
    at new Promise (<anonymous>)
    at r (prober.php?action=script&v=6.1:1)
    at prober.php?action=script&v=6.1:1
    at new Promise (<anonymous>)
    at be (prober.php?action=script&v=6.1:1)
n @ prober.php?action=script&v=6.1:1
ge @ prober.php?action=script&v=6.1:1
a @ prober.php?action=script&v=6.1:1
(anonymous) @ prober.php?action=script&v=6.1:1
r @ prober.php?action=script&v=6.1:1
(anonymous) @ prober.php?action=script&v=6.1:1
be @ prober.php?action=script&v=6.1:1
(anonymous) @ prober.php?action=script&v=6.1:1
Bt @ prober.php?action=script&v=6.1:1
a @ prober.php?action=script&v=6.1:1
(anonymous) @ prober.php?action=script&v=6.1:1
(anonymous) @ prober.php?action=script&v=6.1:1
Lt @ prober.php?action=script&v=6.1:1
(anonymous) @ prober.php?action=script&v=6.1:1
n @ prober.php?action=script&v=6.1:1
(anonymous) @ prober.php?action=script&v=6.1:1
(anonymous) @ prober.php?action=script&v=6.1:1

and here is the detail of the error:
......","scriptPath":"\/data\/web\/public\/prober.php","diskUsage":{"value":24092635136,"max":988718399487.:}},"phpExtensions":{"redis":true,"sqlite3":true,"memcache":false,"memcached":true,"opcache":true,"opcacheEnabled":true,......

How could I fix it,
Thank you!

[Feature request]Add Korean language

Is your feature request related to a problem? Please describe.

Describe the solution you'd like

Describe alternatives you've considered

Additional context

[BUG]PHP7.3.7+nginx不能自动刷新

  • OS:centos7
  • PHP version:7.3.7

页面可以显示,但无法自动刷新,nginx后台报错

[error] 241827#0: *9 FastCGI sent in stderr: "PHP message: PHP Warning: Division by zero in /usr/share/nginx/html/index.php on line 53PHP message: PHP Warning: Division by zero in /usr/share/nginx/html/index.php on line 53PHP message: PHP Warning: Division by zero in /usr/share/nginx/html//index.php on line 53PHP message: PHP Warning: Division by zero in /usr/share/nginx/html/index.php on line 53" while reading response header from upstream, client: 219.******, server: ******, request: "GET /?action=fetch HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "******", referrer: "https://******"

[Feature request]Add PING feature.

Is your feature request related to a problem? Please describe.

Describe the solution you'd like

Describe alternatives you've considered

Additional context

[Benchmarks] Vulto Tokyo PHP7.4

Ubuntu 18.04 / PHP74

730HASH + 951INT + 949FLOAT + 610IO = 3,240
753HASH + 951INT + 942FLOAT + 648IO = 3,294
725HASH + 948INT + 952FLOAT + 640IO = 3,265
732HASH + 951INT + 951FLOAT + 628IO = 3,262
687HASH + 952INT + 951FLOAT + 639IO = 3,229

[Feature request] 功能去除

您好,本人觉得服务器跑分和PHP禁用函数等一些可以对服务器造成危害的功能可以去除,或者有个开关也可以哇
别人可以通过服务器跑分消耗服务器性能,可以通过禁用的函数省去一些步骤
纯属建议(狗头保命

[Feature request]Add Email send testing

Is your feature request related to a problem? Please describe.

Describe the solution you'd like

Describe alternatives you've considered

Additional context

[BUG]

  • OS:Android 7.0
  • PHP version:5.6.38

** Report content **
the screen only shows loading, whereas I have given execute permission

bandwagonhost.com VPS benchmarks

Results: 2019-03-09
Ubuntu 18.04 x64 1c512m

hash intLoop floatLoop ioLoop total
674 866 787 31 2358
682 869 794 27 2372
679 882 806 72 2439
702 885 805 69 2461
706 881 804 114 2505

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.