一个命令行实用程序,它提供一个类似ping的接口来检查tcp/ssl端口和服务
serviceping的Python项目详细描述
服务
一个具有类似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了解完整条款。