2010-08-07 14 views
5

Aynı sunucuda, her bir özel web hizmetine sahip, kendi benzersiz API anahtarlarına sahip olan birkaç farklı web sitemiz vardır. Ne yazık ki, web hizmetinin IP adresi (API anahtarı değil) temelinde bir günlük limiti vardır, bu yüzden sitelerimizin her biri günlük limitlerinin altındadır ve birleşik IP sınırı üzerindedir. Bir web tarayıcısı aracılığıyla erişildiğinde, her web sitesi farklı bir statik IP adresi üzerinde çalışır, ancak perl betikleri web sitesinin kullanıcı hesabının her birinin altında çalıştığı zaman onların giden IP adresi aynıdır.Farklı Giden IP'leri Perl'de Kullanma

Sorum şu ki, her perl betiği belirli sitenin doğru IP adresini kullanacak ve böylece her biri web hizmetinin günlük limiti içinde kalabilsin diye nasıl yapabilirim? Daha basit olarak, perl betiği LWP perl modülünü kullanarak yaptığı çağrıların giden IP adresini nasıl değiştirebilir? Açıklamalar harika ama kod örnekleri daha iyi olurdu.

Yardımlarınız için şimdiden teşekkür ederiz!

+0

bu soruyu bir sitenin güvenlik mekanizması atlayarak ve bir IP adresinizi taklit hakkındadır. Siteyi okuduğumdan ayrı bir IP adresi yok. – xenoterracide

+0

@Xeno: "Her web sitesi farklı bir statik IP adresi üzerinde çalışıyor" ifadesini kullandı. –

+0

@Jim oh Yanlış okumuştum ... – xenoterracide

cevap

9

sadece IP giden bağlantıları için istediğiniz adrese karar vermek '' local_address '' yöntemi kullanabilirsiniz LWP::UserAgent kullanma:

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

Ayrıca "local_address" parametresini UA kurucusuna bir parametre olarak da geçirebilirsiniz. (Not: 'LWP :: UserAgent-> new 'yerine yeni LWP :: UserAgent' kullanmalısınız. Dolaylı nesne sözdizimi en iyi şekilde önlenir.) – cjm

+0

Bir çekicilik gibi çalışır. Teşekkürler beyler! –

+0

Yerel adres belirtilmemişse ne olur? Birden fazla adres varsa LWP bir adresi nasıl seçer? Rastgele bir seçim mi, yuvarlak robin mi, vs mi? – MadHacker

İlgili konular