私は、異なるIPアドレスを持つサービスへの呼び出しを行うスクリプトを用意しています。LWP :: UserAgentにipを割り当てることができないのはなぜですか?
Can't locate object method "local_address" via package "LWP::UserAgent"
は、これは私の機能構造である:
私のコードは、私は私の呼び出しに任意のIPを設定していないとき、私は呼び出しを行う前に、オブジェクトにIPを割り当てるための関数を書いたが、それがエラーを返した作品#!/usr/bin/perl -w
use LWP::UserAgent;
use HTTP::Headers;
use HTTP::Request::Common;
use HTTP::Cookies;
use URI::Escape;
use HTML::LinkExtor;
# set user agent object values
my $ua = new LWP::UserAgent;
$ua->agent('Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.10) Gecko/20050716 Firefox/1.0.6');
push @{ $ua->requests_redirectable }, 'POST';
$ua->cookie_jar({});
sub set_caller_ip {
my($set_ip_address) = @_;
$ua->local_address("$set_ip_address");
return 1;
}
sub test_caller_ip {
my $req = new HTTP::Request('GET', 'http://whatismyip.org/');
$req->headers->push_header('Connection','Keep-Alive');
$req->headers->push_header('Accept','text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8');
my $res = $ua->request($req) or die "$!";
return $res->content();
}
そして、これは私がそれらを呼び出す方法です:
set_caller_ip($caller_ip_address);
$caller_ip_tested = test_caller_ip();
print "\$caller_ip_tested=".$caller_ip_tested."\n";die;
あなたが問題だか知っていますか?
ご協力いただきありがとうございます。
ヒントありがとう!それは本当に可能です!私はバージョンをチェックさせてください! – Monica
あなたは絶対に正しいです...ありがとう男!私はこの問題を3時間苦労していました...そして、実際には私はシステム管理者ではないので、今このモジュールをアップグレードする方法を学ぶべきです!とにかく...助けてくれてありがとう:) – Monica
@Monica、「オブジェクトメソッドを見つけることができません」というメッセージが表示されたら、基本的に3つのオプションがあります:メソッド名のスペルを間違えてしまい、オブジェクトの種類が間違っています、またはモジュールのバージョンがあなたが読んでいるドキュメントと一致しない(およびAPIが変更された)場合。 – cjm