【问题标题】:How to ping a server url/port?如何 ping 服务器 url/端口?
【发布时间】:2021-06-24 01:52:55
【问题描述】:

如何通过 python 中的 url / 端口 ping 服务器,并以 ms(毫秒)接收响应? 晕头转向,用过tcping,也在研究socket,不过好像没那么简单,有什么tips吗?

pings_ookla_script_root-OK.py:

#!/usr/bin/env python3

import requests
import os
import sys
import pings

p = pings.Ping(quiet=False)
port = 8080

response = p.ping('google.com', times=4)
print(response)

输出:

47 bytes from 142.250.78.206: icmp_seq=0 ttl=114 time=11.326 ms
47 bytes from 142.250.78.206: icmp_seq=1 ttl=114 time=11.059 ms
47 bytes from 142.250.78.206: icmp_seq=2 ttl=114 time=10.793 ms
47 bytes from 142.250.78.206: icmp_seq=3 ttl=114 time=11.213 ms
--- google.com ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max = 10.793/11.098/11.326 ms
{'max_rtt': 11.325597763061523, 'min_rtt': 10.793447494506836, 'avg_rtt': 11.09778881072998, 'packet_lost': None, 'ret_code': 0, 'packet_size': 47, 'timeout               ': 1000, 'dest': 'google.com', 'dest_ip': '142.250.78.206'}

【问题讨论】:

  • 你没有ping一个端口,你ping一个主机。 Ping 是在 Internet 层而不是在传输层定义的协议。见Internet protocol suite
  • 我认为pings 模块已经以毫秒为单位返回响应。看起来它在response.avg_rtt 中。要摆脱其他输出,请执行p = pings.Ping(quiet=True),以便您更好地查看返回的内容和不返回的内容。
  • 好的!但是我怎么知道我的服务器的响应时间呢?还有其他方法吗?我已经尝试过 tcping,但我无法进化,有什么提示吗?
  • 如果你的服务器是在家里运行的,你得请朋友ping一下。否则你看不到它有多快。如果您有来自世界各地的朋友 ping 您的服务器,那就最好不过了。您还可以使用 v-server 或任何可以通过远程连接从其他地方运行 ping 命令的东西。另一方面,如今上传速度与下载速度相似。如果你在网络上 ping 一些东西,比如 google,你几乎得到了你的服务器的速度——目前是 11 毫秒。但其他大陆的客户可能要糟糕得多。这取决于客户的位置。
  • 嗨areap-enap,感谢您的提示,但它是一个只能通过端口访问的Web 服务器,例如jardel.com:8080,我想知道它的响应时间。我通过zabbix得到这个答案,但我想通过python脚本找出答案

标签: python tcp ip ping


【解决方案1】:

您无法 ping 端口,因为 Ping 使用的是没有端口概念的 ICMP。端口属于 TCP 和 UDP 等传输层协议。

如果你想做只能通过端口访问的网络服务器测试,你可以使用module tcp_latency

tcp-latency 提供了一种使用 TCP 测量延迟的简单方法。
受其他类似工具的启发,tcp-latency 来自于在无服务器基础架构上使用 Python 运行网络诊断/故障排除任务的需要(因为许多提供商不包括 ping/ICMP 支持),但也应该在任何其他使用 Python>= 的环境中工作36.
特色
作为命令行工具或在代码中作为模块运行。 端口、运行、超时和运行之间的等待时间的自定义参数。 IPv4(例如 52.26.14.11)和域(例如 google.com)主机支持。 作为命令行工具运行时的人类可读输出。 没有外部依赖。 小巧且可扩展。

pip3 install tcp_latency
python3

现在你在 python 环境中。

>>> from tcp_latency import measure_latency
>>> measure_latency(host='google.com')
[34.57]
>>> measure_latency(host='52.26.14.11', port=80, runs=10, timeout=2.5)
[433.82, 409.21, 409.25, 307.09, 306.64, 409.45, 306.58, 306.93, 409.25, 409.26]

其他建议:

如果您尝试到处进行 ping 测试。我建议使用成熟的工具。 Ping 测试结果包括国内和国际客户端 ping 结果。 通过谷歌搜索“全球ping测试”,排名靠前的包括“https://tools.keycdn.com/ping”、“https://www.dotcom-tools.com/ping-test”等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 2018-03-24
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多