我整理了一个python脚本,该脚本将根据用户的IP地址从网络上下载一个exe ...如果用户位于114、115、116 ip范围内,它将使用特定的代理下载...如果他们的用户不在114、115、116 ip上,则不使用代理....
这是代码
import socket
import requests
import urllib.request
import shutil
import subprocess
from time import sleep
import os
from os import system
URL = 'https://downloading/APP.exe'
if socket.gethostbyname(socket.gethostname()).startswith(('114', '115', '116')):
r = requests.get(URL, stream=True, proxies={'http': 'http://proxy:5678', 'https': 'http://proxy:5678'})
else:
r = requests.get(URL, stream=True)
我遇到的问题是socket.gethostbyname根据用户安装的内容选择了不同的IP。例如,如果用户具有某种类型的VM,则脚本将选择一个内部IP地址,并且使其不使用代理并且超时
我想知道的是,是否可以为用户提供以太网适配器以太网或无线局域网适配器,从而为用户提供真实的IP地址。
这不是重复的问题,因为其他答案指出人们可以使用以下内容获取IP,但是如果您坐在公司代理后面,则会超时
from requests import get
ip = get('https://api.ipify.org').text
print 'My public IP address is:', ip