【问题标题】:Getting the exact ping in ms from the server [closed]从服务器获取精确的 ping [关闭]
【发布时间】:2021-10-20 05:24:56
【问题描述】:

我在尝试从服务器获取准确的 ping 值(以毫秒为单位)并将其存储时遇到问题。我正在尝试制作一个带有服务器名称的彩色框的网站,它会根据 ping 更改颜色。所以我可以快速知道服务器何时响应快速、缓慢或何时关闭。我一直在 C# 上尝试它,但如果有更一致的方式,语言无关紧要。

【问题讨论】:

  • 你可以尝试使用多线程吗?
  • 你怎么知道他没有使用多线程?问题中没有代码供我们查看。 (问题中也没有任何问题)

标签: javascript java python c# php


【解决方案1】:

一个简单的 bash 完成这项工作:

for i in www.google.com www.amazon.com www.microsoft.com
do
  echo "$i "`ping -4 -w 1 -c 1 $i | \
             perl -n -e 'print "$1\n" if /time=([0-9\.]+) ms/'`
done | \
gnuplot -e "
  set lmargin 10;
  set rmargin 10;
  set tmargin 5;
  set terminal png size 700,400;
  d = system('cat -');
  set print \$d;
  print d;
  unset print;
  set output '/tmp/servers.ping.png';
  plot \$d u 2 w lines notitle,
       \$d u 0:2:1 w labels notitle
"

有输出

【讨论】:

  • 非常有趣,您对我如何获取这些值并将它们设置为变量有任何提示吗?谢谢。
  • 这是另一个问题,但变量确实存在。您可以使用显式变量 $server$time 运行 for server in www.google.com www.amazon.com www.microsoft.com; do time=$(ping -4 -w 1 -c 1 $i | perl -n -e 'print "$1\n" if /time=([0-9\.]+) ms/'); echo "$server $time"; done :)
  • 我认为这会解决我的问题。我回家后会尝试实施它,谢谢。
【解决方案2】:

我们不知道您是如何托管网站的,因此也不知道您处理请求的服务器。

但老实说我认为更好的方法是在页面中用js结合这个功能。

我让你的 wiki 在你的页面中使用 ping.js,很简单: https://github.com/alfg/ping.js/

【讨论】:

  • 谢谢,我会尝试实现它。在这种情况下,我需要 ping 我的本地服务器和一个外部数据中心。
【解决方案3】:

所以基本上,ping 只是在用户和服务器之间(Ping 取决于用户的互联网连接)

  1. 所以,这就是你必须做的(我猜)......

  2. 只需设置一个具有当前时间的变量(如 start)。

  3. 然后执行一些需要互联网连接的功能(只是一个 GET 和 POST 方法有点方法)

  4. 然后设置另一个具有当前时间的变量(如 end)。

  5. 然后只需找到两个时间之间的差异并将其乘以 10(对于 'ms' 中的值)

(这里Ping只是握手的时间差...)

我想这就是你想要的...

【讨论】:

  • 在这种情况下,它将是对我的本地服务器和位于另一个城市的数据中心的 ping。我想监控连接的状态,因为它们经常超时。
猜你喜欢
  • 1970-01-01
  • 2018-06-14
  • 2019-08-10
  • 1970-01-01
  • 1970-01-01
  • 2019-03-19
  • 1970-01-01
  • 2020-07-20
  • 1970-01-01
相关资源
最近更新 更多