Форум сайта python.su
Есть робот на сервере (linux centos) который периодически заходит на определённый интернет сайт и берёт нужную информацию. На сервере 10 IP адресов. Необходимо чтобы робот использовал их все по очереди.
Офлайн
А где вопрос?
Офлайн
Необходимо чтобы робот использовал их все по очереди. - мне казалось что это как условие задачи лаконично понятно, но если вы всёже не видите вопроса я поясню:
как это можно сделать?
как скриптом выбирать сетевые интерфейсы или ip адреса для выхода?
Офлайн
Способов много…
Как вариант, ставите PostreSQL или Oracle создаёте таблицу с полем “ip” и типом “inet” (create table…), загоняете туда все десять адересов (connection.executemany) и выбираете по одному (…order by ip limit 1 offset ?).
Как видите, всё просто.
Офлайн
наверно я действительно непонятно выражаюсь…
вот часть кодагде происходит запрос в интернет:
def geturl(self, host):
txheaders = {
"User-Agent" : "Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1",
'Accept-Language': 'en-us',
'Cache-Control': 'max-age=0'
}
req = urllib2.Request(host, None, txheaders)
return urllib2.urlopen(req).read()
Офлайн
demorizПропишите роут через этот интерфейс, а после запроса удалите
Коннект идёт через дефолтный интерфейс.
Как мне самому указать роботу интерфейс через который в инет выходит???
Офлайн
PooHНа сервере крутится слишком много приложений привязанных к IP, крайне нежелательно менять дефолтный маршрут даже на пару секунд. Ну неужели у такого популярного языка нет способа самостоятельно выбирать сетевой интерфейс для выхода в интернет?
Пропишите роут через этот интерфейс, а после запроса удалите
Офлайн
demorizА если менять не дефолтный маршрут, а прописывать на конкретный IP?
На сервере крутится слишком много приложений привязанных к IP, крайне нежелательно менять дефолтный маршрут даже на пару секунд.
demorizНаверно есть, но копать надо глубже, маршрутизация это где-то третий уровень OSI, вы же пытаетесь работать на седьмом :)
Ну неужели у такого популярного языка нет способа самостоятельно выбирать сетевой интерфейс для выхода в интернет?
Офлайн
PooHА как?demorizА если менять не дефолтный маршрут, а прописывать на конкретный IP?
На сервере крутится слишком много приложений привязанных к IP, крайне нежелательно менять дефолтный маршрут даже на пару секунд.
Офлайн
demorizА черт его знает, спросите вашего админа. Ну что нибудь типа:
А как?
route add -host 192.168.1.1 gw 192.168.0.1 dev br0
Офлайн