我需要写一小段代码来模拟来自不同源IP地址的流量,我想知道是否可以通过使用Perl欺骗地址来实现?
我尝试了Net::RAWIP,但我需要发送一些更复杂的HTTP流量(即POST数据),而RAWIP无法做到这一点
对于LWP,我尝试使用ua->local_address,但得到了以下响应:
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();发布于 2012-09-14 01:40:33
如果您发送的地址不是您的地址,则无法获得响应。这意味着您所能做的就是发送请求。您已经指出可以进行发送,所以您所需要的就是要发送的请求。这很简单。
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--https://stackoverflow.com/questions/12411723
复制相似问题