1

Net::RawIP と Net::Write::Layer3 の両方を試しました。ネットワークで特定の IP アドレスを指定すると、正常に動作します。私がどちらかを取得している間

sendto() at /usr/lib/perl5/Net/RawIP.pm line 630. shell returned 13

また

Net::Write::Layer::send: Permission denied

宛先アドレスを 66.66.66.255 に変更した場合

何か案は?

私が使用しているコードはここにあります

use Net::Write::Layer qw(:constants);
use Net::Write::Layer3;
use NetAddr::IP;
use Net::RawIP;

$message = "Foo";

# using Net::RawIP
$n = Net::RawIP->new({
                        ip  => {
                            tos => 0xC0,
                            daddr => '66.66.66.2',
                            protocol => 2,
                        },
                        generic => {
                            data => $message
                        }
                    });
$n->send;

# using Net::Write::Layer3
my $desc = Net::Write::Layer3->new(
                dst      => '66.66.66.2',
                protocol => '2',
                family   => NW_AF_INET,
);    
$desc->open;
$desc->send($message);
$desc->close;
4

1 に答える 1

1

通常、エラー 13 はEACCES、ブロードキャスト ソケットに送信するための十分な権限がありません。

于 2012-05-22T15:28:48.360 に答える