代码拉取完成,页面将自动刷新
from subprocess import Popen, PIPE
import myConfig
import sys, io
import platform
# 传入ip地址,调用 cmd ping, 返回 Popen 对象
# 指定ping的stdout通过管道写入设定的buffer中
def __invoke_ping(addr,ipv=6):
# windows 的参数和linux下不同
if 'Windows' in platform.system():
cmd=myConfig.PingCMD
if 'Linux'==platform.system():
if ipv==6:
cmd=myConfig.Ping6CMDLinux
else:
cmd=myConfig.PingCMDLinux
cmd.append(addr)
ret = 0
try:
ret = Popen(cmd, bufsize=1024, stdout=PIPE)
except ValueError:
print('error occur in invoke_ping: ' + addr)
return ret
# 简单地通过 ping 回显信息检查是否在线
def __check_online(popen_obj):
sb = str(popen_obj.communicate()[0], encoding=myConfig.PingEncodeing)
echo = sb.split('\n')
ip='0'
ms='0'
if len(echo) >= 3:
if 'Windows' in platform.system():
ip = echo[2].split(' ')[1]
ms = echo[2].split('=')[-1]
if 'Linux' == platform.system():
if '(' in echo[0]:
ip = echo[0].split('(')[1].split(')')[0]
ms = echo[1].split('=')[-1]
if len(ms)>6:
ms='0'
return ip.strip(),ms.strip()
def Get_Ping_Echo(addr,ipv=6):
'''
Ping指定ip并返回结果
:param addr:地址
:param ipv:ip版本,4 或者 6
:return:
'''
ret = __invoke_ping(addr,ipv)
ms=0
ip=0
if ret!=0:
ip,ms=__check_online(ret)
else:
print(u'执行命令出现错误')
return ip.strip(':'),ms
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。