mirror of https://github.com/dnomd343/ProxyC
Dnomd343
3 years ago
3 changed files with 57 additions and 20 deletions
@ -0,0 +1,43 @@ |
|||||
|
#!/usr/bin/python |
||||
|
# -*- coding:utf-8 -*- |
||||
|
|
||||
|
import time |
||||
|
import requests |
||||
|
|
||||
|
def httpPing(port, url = 'http://gstatic.com/generate_204', timeout = 30): |
||||
|
try: |
||||
|
startTime = time.time_ns() |
||||
|
socks5 = 'socks5://127.0.0.1:' + str(port) |
||||
|
httpRequest = requests.get(url, proxies = { |
||||
|
'http': socks5, |
||||
|
'https': socks5, |
||||
|
}, timeout = timeout) |
||||
|
if httpRequest.status_code == 204: |
||||
|
delay = (time.time_ns() - startTime) / (10 ** 6) |
||||
|
return round(delay, 2) # 保留小数点后两位 |
||||
|
except: pass |
||||
|
return -1 |
||||
|
|
||||
|
def httpCheck(port, url = 'http://gstatic.com/generate_204', timeout = 30): |
||||
|
result = [] |
||||
|
result.append(httpPing(port, url, timeout / 4)) |
||||
|
result.append(httpPing(port, url, timeout / 2)) |
||||
|
result.append(httpPing(port, url, timeout / 1)) |
||||
|
failNum = 0 |
||||
|
for ret in result: |
||||
|
if ret < 0: |
||||
|
failNum += 1 |
||||
|
if failNum == 3: # 全部失败 |
||||
|
return False, -1 |
||||
|
elif failNum == 2: # 仅成功一次 |
||||
|
for ret in result: |
||||
|
if ret > 0: # 返回成功单次延迟 |
||||
|
return False, ret |
||||
|
elif failNum == 1: # 存在一次失败 |
||||
|
sum = 0 |
||||
|
for ret in result: |
||||
|
if ret > 0: |
||||
|
sum += ret |
||||
|
return False, sum / 2 # 返回成功延迟均值 |
||||
|
else: # 全部成功 |
||||
|
return True, min(min(result[0], result[1]), result[2]) # 返回最低延迟 |
@ -0,0 +1,6 @@ |
|||||
|
#!/usr/bin/python |
||||
|
# -*- coding:utf-8 -*- |
||||
|
|
||||
|
from ProxyChecker.Http import * |
||||
|
|
||||
|
__all__ = [ 'httpPing', 'httpCheck' ] |
Loading…
Reference in new issue