27 января 2015 г., 13:27 пользователь Денис Ильиных <[email protected]> написал: > Здравствуйте. > Есть сервер с кучей айпи, Пытаюсь на mojo написать парсер что бы на каждый > запрос использовался разный айпи. > > my $max_conn = 4; > Mojo::IOLoop->recurring( > 0 => sub { > for ($active + 1 .. $max_conn) { > return ($active or Mojo::IOLoop->stop) > unless my $ip = shift @ips; > ++$active; > $ua->local_address($ip); > $ua->get('http://myip.ru/?ip='.$ip => \&get_ip); > } > } > ); > > > Вывод > > http://myip.ru/?ip=193.124.18.205 > remote_ip: 193.124.18.205 > > http://myip.ru/?ip=193.124.44.44 > remote_ip: 193.124.44.44 > > http://myip.ru/?ip=151.248.125.194 > remote_ip: 151.248.125.194 > > http://myip.ru/?ip=193.124.16.139 > remote_ip: 193.124.16.139 > > ----- а вот отсюда начинаются несовпадения между тем что я хочу и тем что > получаю > > http://myip.ru/?ip=194.58.61.231 > remote_ip: 193.124.18.205 > > http://myip.ru/?ip=193.124.44.45 > remote_ip: 193.124.16.139 > > http://myip.ru/?ip=193.124.18.206 > remote_ip: 151.248.125.194 > > http://myip.ru/?ip=194.58.61.232 > remote_ip: 193.124.18.205 > > http://myip.ru/?ip=193.124.16.184 > remote_ip: 193.124.16.139 > > В итоге идет разброд и шатание между айпи через который я хочу сделать > запрос и айпи через который этот запрос реально проходит.
Похоже, что переопределение local_address() не работает для уже соединившегося с хостом Mojo::UserAgent. Попробуйте создать отдельного агента на каждый IP и выбирать определенного агента для каждого запроса. > Не могли бы подсказать как это правильно реализовать ? > > -- > С уважением. > Ильиных Денис > Программист > Компания "GT-Shop.ru" > Телефон: +7(963) 995-7616 > > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org > -- Best regards, Ilya Chesnokov -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
