ping

Posted 寒星12345678999

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ping相关的知识,希望对你有一定的参考价值。

# -*- coding:utf-8 -*-
import os
import time
import datetime
import subprocess
retrytime = 0


def mprint(str):
    print "#############   " + str.decode(utf-8) + "   #############"

def mNetPing(pingUrl):  #  mNetPing(jd.com)
    global retrytime
    print "开始检查网络状况,请耐心等待".decode(utf-8)
    p = subprocess.Popen(["ping.exe", pingUrl],
                         stdin=subprocess.PIPE,
                         stdout=subprocess.PIPE,
                         stderr=subprocess.PIPE,
                         shell=True)
    out = p.stdout.read()
    # print out
    out = out.decode(GB2312).encode(utf-8)  # 转成utf8方便比较

    if "(0% 丢失)" in out:#不能用 0% 丢失  因为100% 丢失包含 0% 丢失  刚好0的左边是10  所以改成(0%是可以的 加个括号
        mprint("#############################网络正常#############################")
    elif "(100% 丢失)" in out:#网线连接正常 无法访问域名
        mprint("#####################域名故障,请检查电脑能否访问 www.jd.com##################")
        os.system("pause")
        mNetPing(pingUrl)
    elif "找不到主机" in out:#网线断开
        mprint("###########################请检查本机网络是否正常连接 3秒后自动重新检测###########################")
        time.sleep(3)
        retrytime = retrytime + 1
        #os.system("pause")
        mprint(""+str(retrytime)+"次重试")
        mNetPing(pingUrl)
    else:#请求超时
        mprint("网络不稳定 是否继续?按任意键继续")

        os.system("pause")
        # print chardet.detect(out.decode(GB2312).encode(utf-8))
        # mlost="100% 丢失".decode(utf-8)
        # print chardet.detect(mlost)
        # print mlost
if __name__ == __main__:
    # os.system("pause")
    print time.localtime()#<type time.struct_time>
    print time.strftime(%Y-%m-%d, time.localtime(time.time()))
    print time.strftime(%H:%M:%S, time.localtime(time.time()))
    print time.strftime(%Y-%m-%d %H:%M:%S, time.localtime(time.time()))
    mNetPing(jd.com)
    mprint("程序测试结束")

 

我在京东爬虫中用的到判断网络状况的代码,核心代码如下:

    p = subprocess.Popen(["ping.exe", pingUrl],
                         stdin=subprocess.PIPE,
                         stdout=subprocess.PIPE,
                         stderr=subprocess.PIPE,
                         shell=True)
    out = p.stdout.read()

再根据out的内容自己判断吧!

以上是关于ping的主要内容,如果未能解决你的问题,请参考以下文章

电脑查看延时得代码是ping后面是啥

Java代码调用cmd中的ping命令.如何获得ping返回的信息?

微信小程序代码片段

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?