为了账号安全,请及时绑定邮箱和手机立即绑定

如图所示,请帮忙写一个函数确定某个ip是否能ping通?

如图所示,请帮忙写一个函数确定某个ip是否能ping通?

慕娘9325324 2022-06-17 11:15:17
我的代码问题是,它另外弹出一个控制台,我想把这个黑框去掉,另一方面是不管是否ping通都返回true
查看完整描述

2 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

你这样直接使用os.system("ping")==0是不行的,执行ping命令后跟cmd执行一样,也会返回类似于ttl=245 time=36.798 ms这样的信息。所以你要做的是:
在os.system("ping -n 1 "+ip)的返回结果中查找是否存在"TTL="这样的字符,如果存在表示ping通了,不存在就表示超时

查看完整回答
反对 回复 2022-06-20
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞


def ping(host):    '''ping 1次指定地址'''    import subprocess,traceback, platform    if platform.system()=='Windows':        cmd = 'ping -n %d %s'%(1,host)    else:        cmd = 'ping -c %d %s'%(1,host)    try:        = subprocess.Popen(args=cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)        (stdoutput,erroutput) = p.communicate()        # print stdoutput    except Exception, e:        traceback.print_exc()    if platform.system()=='Windows':        return stdoutput.find('Received = 1')>=0    else:        return stdoutput.find('1 packets received')>=0if __name__ == "__main__":    print ping('baidu.com')



查看完整回答
反对 回复 2022-06-20
  • 2 回答
  • 0 关注
  • 173 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号