使用企业代理后面的python脚本下载文件

问题描述 投票:0回答:1

我正在整理一个脚本,它将从网上下载文件....但是有些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)

python python-3.x shell if-statement output
1个回答
0
投票

您可以读取本地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)
© www.soinside.com 2019 - 2024. All rights reserved.