如何在pyping python中获取ttl值

2024-03-28 14:01:52 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的程序只在服务器使用pyping启动或关闭时打印,但我需要用TTL(生存时间)值打印输出。在

import pyping
servers = (
  '192.168.1.1',
  '192.168.1.2',
  '192.168.1.3'
)

temp = []

for server in servers:
    checker = pyping.ping(server)
    if checker.ret_code == 0:
        body = "%s Server is UP" % (server)
        temp.append(body)
    else:
        body = "%s Server is Down" % (server)
        temp.append(body)

print(temp)

伙计们,如果你有任何其他的想法来获得ttl的价值,请把它。。在


Tags: import程序服务器serveris时间checkerbody
1条回答
网友
1楼 · 发布于 2024-03-28 14:01:52

使用来自subprocess模块的Popen

您可以使用命令success的returncode,然后不使用success

import subprocess
import re
p = subprocess.Popen(["ping","www.google.com"], stdout=subprocess.PIPE)
res=p.communicate()[0]
if p.returncode > 0:
    print('server error')
else:
    pattern = re.compile('TTL=\d*')
    print(pattern.search(str(res)).group())

出去

^{pr2}$

在linux上,再传递一个-c以及命令,以避免无休止的ping

相关问题 更多 >