2010-08-07 7 views
5

Tenemos varios sitios web diferentes que se ejecutan en el mismo servidor que todos tienen acceso a un servicio web en particular, cada uno con su propia clave de API. Lamentablemente, el servicio web tiene un límite diario basado en la dirección IP (no en la clave API), por lo que, si bien cada uno de nuestros sitios está muy por debajo de su límite diario, combinados superan el límite de IP. Cuando se accede a través de un navegador web, cada sitio web se ejecuta en una dirección IP estática diferente, sin embargo, cuando se ejecutan scripts Perl en cada una de las cuentas de usuario del sitio web, su dirección IP de salida es idéntica.Uso de direcciones IP de salida diferentes en Perl

Mi pregunta es ¿cómo puedo hacerlo para que cada script de Perl use la dirección IP correcta del sitio particular para que cada uno pueda mantenerse dentro del límite diario del servicio web? Más simple, ¿cómo puede una secuencia de comandos de Perl cambiar la dirección IP saliente de las llamadas que está haciendo usando el módulo LWP perl? Las explicaciones son geniales, pero los ejemplos de código serían incluso mejores.

Gracias de antemano por su ayuda!

+0

esta pregunta es sobre pasar mecanismo de seguridad de un sitio, y la suplantación de una dirección IP. Por lo que estoy leyendo, el sitio no tiene una dirección IP separada. – xenoterracide

+0

@Xeno: especificó "cada sitio web se ejecuta en una dirección IP estática diferente". –

+0

@Jim oh, lo leí mal ... – xenoterracide

Respuesta

9

Usando LWP::UserAgent puede simplemente usar el método '' local_address '' para decidir qué dirección IP que desea para las conexiones salientes:

my $ua = new LWP::UserAgent; 
$ua->local_address("10.10.10.10"); 
my $response = $ua->get("http://stackoverflow.com/"); 
+3

También puede pasar 'local_address' como parámetro al constructor de UA. (Nota: debe usar 'LWP :: UserAgent-> new' en lugar de' new LWP :: UserAgent'. Es mejor evitar la sintaxis indirecta de los objetos.) – cjm

+0

Funcionó como un amuleto. ¡Gracias chicos! –

+0

¿Qué sucede si no se especifica una dirección local? ¿Cómo selecciona LWP una dirección si hay varias direcciones? ¿Es una selección al azar, round robin, etc.? – MadHacker

Cuestiones relacionadas