溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python3 通過 pycurl 檢測站點(diǎn)性能,各個環(huán)節(jié)返回時間

發(fā)布時間:2020-08-03 10:15:01 來源:網(wǎng)絡(luò) 閱讀:763 作者:wuts123 欄目:編程語言

由于python3 對StringIO 集成到io 模塊中了,所有python3 import StringIO 改成了 import io,pycurl.Curl() 初始化對象C ,其 屬性WRITEFUNCTION 要求傳遞參數(shù)是byte,b.write 需要初始化成io.BytesIO()

#!/bin/env pyhon3
import pycurl
import io

def check(urls):
dict_data={}
#if url not in errorurl:
url = 'http://' + str(urls)
dict_data['url']=url
c = pycurl.Curl()
c.setopt(pycurl.CONNECTTIMEOUT,5)
c.setopt(pycurl.TIMEOUT,5)
c.setopt(pycurl.NOPROGRESS,1)
c.setopt(pycurl.FORBID_REUSE,1)
c.setopt(pycurl.MAXREDIRS,3)
c.setopt(pycurl.DNS_CACHE_TIMEOUT,30)
c.setopt(c.URL, url)
try:
b = io.BytesIO()
c.setopt(c.WRITEFUNCTION, b.write)
c.perform()
HTTP_CODE = c.getinfo(pycurl.HTTP_CODE) #HTTP狀態(tài)碼
dict_data['HTTP狀態(tài)碼'] = HTTP_CODE
DNS_TIME = c.getinfo(c.NAMELOOKUP_TIME) 1000 #DNS消耗時間
dict_data['DNS消耗時間'] = DNS_TIME
CONNECT_TIME = c.getinfo(c.CONNECT_TIME)
1000 #建連消耗時間
dict_data['建連消耗時間'] = CONNECT_TIME
PRETRANSFER_TIME = c.getinfo(c.PRETRANSFER_TIME) 1000 #建連到準(zhǔn)備傳輸消耗
dict_data['建連到準(zhǔn)備傳輸消耗'] = PRETRANSFER_TIME
STARTTRANSFER_TIME = c.getinfo(c.STARTTRANSFER_TIME)
1000 #建連到傳輸消耗
dict_data['建連到傳輸消耗'] = STARTTRANSFER_TIME
TOTAL_TIME = c.getinfo(c.TOTAL_TIME) * 1000 #傳輸結(jié)束消耗時間
dict_data['傳輸結(jié)束消耗時間'] = TOTAL_TIME
SPEED_DOWNLOAD = c.getinfo(c.SPEED_DOWNLOAD) #平均下載速度
dict_data['平均下載速度'] = SPEED_DOWNLOAD
b.close()
c.close()
except pycurl.error:
pass
#errno, errstr = error
#print 'An error occurred: ', errstr
for var in dict_data.keys():
print(var,':',dict_data[var])
website=input('請輸入檢測站點(diǎn)域名:如www.baidu.com')
check(website)

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI