2012-09-13 34 views
5

異なるソースIPアドレスからのトラフィックをシミュレートするコードを書く必要があります。そのアドレスをPerlでスプーフィングすることができないのでしょうか?Perl LWPを使ったスプーフィングIP

私はネット:: RAWIPを試してみましたが、それは働いたが、私はいくつかのより複雑なHTTPトラフィック(つまりPOSTデータ)を送信する必要があると私は> local_addressをUA-使用してみましたLWPでRAWIP

でそうすることができませんでした私はこの応答を取得:

Can't connect to 10.x.x.x:8080 

LWP::Protocol::http::Socket: Cannot assign requested address at /usr/lib/perl5/site_perl/5.10.0/LWP/Protocol/http.pm line 51. 

は、これは私が使用しているコードです:

#!/usr/bin/perl -w 

use strict ; 
use warnings ; 
use LWP::UserAgent ; 
use URI::URL ; 

my $path = 'http://142.133.114.130:8080' ; 
my $url = new URI::URL $path; 
my $ua  = LWP::UserAgent->new(); 

$ua->local_address('10.121.132.112'); 
$ua->env_proxy ; 
my $effing = 'blaj.jpg' ; 
my $response = $ua->post($url, 
         'Content-Type' => "multipart/form-data", 
         'Content' => [ userfile => ["$effing" ]], 
         'Connection' => 'keep-alive') ; 
print $response->decoded_content(); 

答えて

2

あなたはあなたではないアドレスから送信する場合は、応答を取得することはできません。つまり、リクエストを送信するだけです。あなたは送信を行うことができると指示しているので、送信するリクエストだけが必要です。それは簡単です。

use strict; 
use warnings; 

use HTTP::Request::Common qw(POST); 

my $req = POST('http://www.example.org/', 
    'Content-Type' => "multipart/form-data", 
    'Content'  => [ userfile => [ $0 ]], 
    'Connection' => 'keep-alive', 
); 

print $req->as_string(); 

出力:

POST http://www.example.org/ 
Connection: keep-alive 
Content-Length: 376 
Content-Type: multipart/form-data; boundary=xYzZY 

--xYzZY 
Content-Disposition: form-data; name="userfile"; filename="x.pl" 
Content-Type: text/plain 

use strict; 
use warnings; 

use HTTP::Request::Common qw(POST); 

my $req = POST('http://www.example.org/', 
    'Content-Type' => "multipart/form-data", 
    'Content'  => [ userfile => [ $0 ]], 
    'Connection' => 'keep-alive', 
); 

print $req->as_string(); 

--xYzZY-- 
+0

ファイルを送信するには問題はありません、それは、要求の送信元IPを変更しています。私はLANに乗っていますので、ルートと聴取サーバーを制御できますので、それでいいです – blackbird

+0

あなたは既にNet :: RAWIPでそれを行うことができます。あなたがNet :: RAWIPで行うことができなかった唯一のことは、要求をフォーマットすることであり、私はあなたにそれを行う方法を示しました。 – ikegami

+0

ああ、これはRAWIPです!試してみましょう... – blackbird

関連する問題