我正在整理一个脚本,它将从网上下载文件....但是有些ppl会成为公司防火墙,所以这意味着如果你是@ home,下面的代码可以工作,但如果你在办公室,它会挂起,除非你手动设置代理变量然后运行....
我在想的是创建一个if语句... if语句将检查用户的IP地址,如果用户在8.x或9.x或7.x中有IP地址,则使用此代理...否则忽略并继续下载
我用于此下载的代码如下...我对此很新,所以我不知道如何为IP做if语句,然后使用代理段,所以任何帮助都会很棒
import urllib.request
import shutil
import subprocess
import os
from os import system
url = "https://downloads.com/App.exe"
output_file = "C:\\User\\Downloads\\App.exe"
with urllib.request.urlopen(url) as response, open(output_file, 'wb') as out_file:
shutil.copyfileobj(response, out_file)
您可以读取本地IP作为@nickthefreak评论,然后使用requests lib建立代理:
import socket
import requests
URL = 'https://downloads.com/App.exe'
if socket.gethostbyname(socket.gethostname()).startswith(('8', '9', '7')):
r = requests.get(URL, stream=True, proxies={'http': 'http://10.10.1.10:3128', 'https': 'http://10.10.1.10:1080'})
else:
r = requests.get(URL, stream=True)
with open('C:\\User\\Downloads\\App.exe', 'wb') as f:
for chunk in r:
f.write(chunk)