Fixie — еще один вариант. Fixie — это надстройка, которая предоставляет приложениям Heroku фиксированный набор статических IP-адресов для исходящих запросов. Он не зависит от языка и фреймворка.
Fixie прост в установке и имеет документацию для начала работы (аналогичную приведенной ниже для Python) для Ruby, Node, Java, Go здесь. Вот один для Python.
Сначала вам нужно подписаться на бесплатный план:
$ heroku addons:open fixie
Opening fixie for sharp-mountain-4005…
Далее FIXIE_URL
будет задано как переменная окружения. Чтобы направить определенный запрос через Fixie, используя requests
:
import os, requests
proxyDict = {
"http" : os.environ.get('FIXIE_URL', ''),
"https" : os.environ.get('FIXIE_URL', '')
}
r = requests.get('http://www.example.com', proxies=proxyDict)
При использовании urllib2
тот же функционал будет выглядеть так:
import os, urllib2
proxy = urllib2.ProxyHandler({'http': os.environ.get('FIXIE_URL', '')})
auth = urllib2.HTTPBasicAuthHandler()
opener = urllib2.build_opener(proxy, auth, urllib2.HTTPHandler)
response = opener.open('http://www.example.com')
html = response.read()
В обоих случаях эти запросы будут поступать через известный IP-адрес, назначенный Fixie.
person
user527662
schedule
26.09.2015