一个命令行实用程序,它提供一个类似ping的接口来检查tcp/ssl端口和服务

serviceping的Python项目详细描述


服务

Build StatusCoverageCurrent VersionSupported Python VersionsLicense

一个具有类似ping接口的实用程序,用于ping tcp端口服务。

目录

背景

编写此实用程序是为了简化与网络服务对话相关的网络问题的疑难解答

安装

要安装serviceping,首先确保运行的是python 3.6+,然后简单地:

pip install serviceping

用法

usage: serviceping [-h] [-c COUNT] [-i INTERVAL] [-d] destination [destination ...]
positional arguments:
  destination Destination host or URL

optional arguments:
  -h, --help   show this help message and exit
  -c COUNT     Number of pings to send
  -i INTERVAL  Ping interval
  -d           Show timings for the entire connection

示例

serviceping工具使用与ping命令相同的语法。

www.yahoo.com

上的ping端口80(http)

通过http(端口80)ping www.yahoo.com,我们可以清楚地看到 多个主机响应和每个请求的延迟。

$ serviceping www.yahoo.com
SERVICEPING www.yahoo.com:80 (98.139.180.149:80).from www.yahoo.com:80 (98.139.183.24:80): time=2.46 msfrom www.yahoo.com:80 (98.139.180.149:80): time=2.43 ms--- www.yahoo.com ping statistics ---2 packets transmitted, 2 received, 0% packet loss, time 1704.0msrtt min/avg/max/dev = 2.43/2.44/2.46/4.00 ms$

www.yahoo.com

上的ping端口4443(https)

serviceping还可以连接到其他端口,如ssl端口(443)。

$ serviceping www.yahoo.com:443
SERVICEPING www.yahoo.com:443 (98.139.183.24:443).from www.yahoo.com:443 (98.139.180.149:443): time=2.89 msfrom www.yahoo.com:443 (98.139.180.149:443): time=2.81 ms--- www.yahoo.com ping statistics ---2 packets transmitted, 2 received, 0% packet loss, time 1744.0msrtt min/avg/max/dev = 2.81/2.85/2.89/6.08 ms$

ping url而不是端口

serviceping命令还可以指定向url发送ping请求。如果指定了url,它将 执行http get请求并显示响应,这非常有用 当主机在dns中执行意外操作时 旋转或在反向代理或VIP后面。

在本例中,我们指定了一个url http://cnn.com/

$ serviceping http://cnn.com/
SERVICEPING cnn.com:80 (157.166.255.18:80).1500 bytes from cnn.com:80 (157.166.255.19:80):response=200 time=87.14 ms1448 bytes from cnn.com:80 (157.166.226.25:80):response=200 time=64.82 ms1500 bytes from cnn.com:80 (157.166.255.19:80):response=200 time=62.98 ms1500 bytes from cnn.com:80 (157.166.255.19:80):response=200 time=78.30 ms--- cnn.com ping statistics ---4 packets transmitted, 4 received, 0% packet loss, time 4372.0msrtt min/avg/max/dev = 62.98/73.31/87.14/56.00 ms$

输出显示两个主机正在响应此请求,并且在响应中返回不同数量的数据。

使用计时

ping url

详细计时标志为每个请求的每个步骤添加计时, 这对于确定延迟问题或错误的原因很有用。

在这里,我们将对前面的示例进行详细的计时。

$ serviceping -d http://cnn.com/
SERVICEPING cnn.com:80 (157.166.255.19:80).1386 bytes from cnn.com:80 (157.166.255.19:80):response=200 dns=0.21ms connect=68.36ms request=130.02ms all=198.73ms1386 bytes from cnn.com:80 (157.166.226.25:80):response=200 dns=0.30ms connect=66.72ms request=101.07ms all=168.20ms1500 bytes from cnn.com:80 (157.166.255.18:80):response=200 dns=0.30ms connect=123.94ms request=203.08ms all=327.43ms1386 bytes from cnn.com:80 (157.166.226.26:80):response=200 dns=0.28ms connect=68.32ms request=87.94ms all=156.69ms--- cnn.com ping statistics ---4 packets transmitted, 4 received, 0% packet loss, time 5009.0msrtt min/avg/max/dev = 156.69/212.76/327.43/138.24 ms$

显然,地址为157.166.226.25的主机要花费更长的时间 建立TCP连接并处理HTTP请求。

许可证

这个项目是根据Apache 2.0开源许可的条款授权的。请参阅LICENSE了解完整条款。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何获取所有链接并使用SeleniumWebDriver逐个单击这些链接   java中数组列表的arraylist移位元素   java如何存储具有不同类型参数的元素   java不能使用List<Future<?>>当从不同位置调用时,在方法参数中   java我应该如何修复代码以避免测试代码出错?   安卓 PreferenceFragment java。lang.RuntimeException   java在运行emulator时发现错误   java取消多个AsyncTask回调的有效方法是什么?如果中途满足条件,这些回调将在将来返回?   有没有办法在运行时将方法动态分配给Java类?   java如何将propertyfile与GlassFish一起使用   如何在PHP中使用bcrypt对密码进行哈希处理?   Java和UDP web服务器   java JPA允许EntityListeners执行JPA操作吗?   java执行do while语句时不会产生错误   java无法在edittext中显示数据库中的数据   java Tomcat中活动会话的数量   java在何处使用@SuppressWarnings(“requestfactory”)   netty连接中的java HornetQ异常