import os,sys
import time
import pycurl
from io import bytesio
buffer = bytesio()
url = '' #探測質量的目標url
c = pycurl.curl() #建立乙個curl物件
c.setopt(pycurl.url, url) #定義請求的url常量
c.setopt(pycurl.connecttimeout, 50) #定義請求的連線等待是鍵
c.setopt(pycurl.timeout, 50) #定義超時時間
c.setopt(pycurl.forbid_reuse, 1) #完成互動後強制斷開,補重用
c.setopt(pycurl.maxredirs, 1) #指定http重定向的最大數為1
c.setopt(pycurl.dns_cache_timeout, 30) #設定儲存dns資訊時間為30秒
#最新pycurl輸出的用法,需要將獲得的位元組儲存在buffer中
c.setopt(pycurl.writeheader,buffer) #將返回的http header定向到buffer最新pycurl輸出的用法
c.setopt(pycurl.writedata, buffer) #將返回的http內容定向到buffer,最新pycurl輸出的用法
try:
c.perform() #提交請求
except exception as e:
print("connection error"+str(e))
indexfile.close()
c.close()
sys.exit()
namelookup_time = c.getinfo(c.namelookup_time) #獲取dns解析時間
connecttime = c.getinfo(c.connect_time) #獲取建立連線時間
pretransfer_time = c.getinfo(c.pretransfer_time) #獲取從建立連線到準備傳輸所消耗的時間
starttransfer_time = c.getinfo(c.starttransfer_time) #獲取從建立連線到傳輸開始所消耗的時間
total_time = c.getinfo(c.total_time) #獲取傳輸的總時間
http_code = c.getinfo(c.http_code) #獲取http狀態碼
header_size = c.getinfo(c.header_size) #獲取http頭部大小
#列印輸出相關資料
body = buffer.getvalue()
report = 'report.txt' #將訪問的url的html檔案寫入到檔案中
with open (report, 'wb' )as f:
f.write(body)
print("http狀態碼{}".format(http_code))
print("獲取dns解析時間% ms".format(namelookup_time*1000))
print("建立連線時間 ms".format(connecttime*1000))
print("準備傳輸時間 ms".format(pretransfer_time*1000))
print("傳輸開始時間 ms".format(starttransfer_time*1000))
print("傳輸結束總時間 ms".format(total_time*1000))
print("http頭部大小{} byte".format(header_size))
c.close()
python探測web服務質量
本文通過pycurl模組提供的方法探測web服務質量的情況,pycurl.curl 類建立乙個curl控制代碼物件,關於curl物件的一下方法使用通過乙個例子說明 import os import sys import pycurl print pycurl.version url c pycurl...
Python之 實現探測Web服務質量
coding utf 8 created on 2018年1月4日 author liuyazhuang import os,sys import time import pycurl 探測的目標url url 建立乙個curl物件 c pycurl.curl 定義請求的url常量 c.setopt...
QoS服務質量
ip qos歷史 internet的建立者在ip分組報頭中預留了乙個位元組,為服務型別tos,從而使得最初的ip規範就包括qos。服務型別用於指示所需qos的抽象引數,這些引數用於指導如何選擇實際的服務引數。1980年,internet處於象牙塔,執行的應用和通訊有限,因此,是否支援tos顯得無關緊...