in reply to Re^2: icmp socket error
in thread icmp socket error
C:\>perl -de 1 Loading DB routines from perl5db.pl version 1.28 Editor support available. Enter h or `h h' for help, or `perldoc perldebug' for more help. main::(-e:1): 1 DB<1> use Net::Ping; DB<2> $tcp = Net::Ping->new('tcp'); DB<3> print +($tcp->ping('4.2.2.2') ? "Up\n" : "Down\n"); Up DB<4> $icmp = Net::Ping->new('icmp'); icmp socket error - at (eval 11)[C:/Perl/lib/perl5db.pl:628] line 2 DB<5> print "$]\n"; 5.008006 DB<6> q
The code in Ping.pm getting the error is:
socket($self->{"fh"}, PF_INET, SOCK_RAW, $self->{"proto_num"}) || croak("icmp socket error - $!");
Raw sockets can only be opened by those running with 'root' permission (easily verified on my Linux box). However, what's the equivalent under Windows? I have an alternate id that's a full administrator, but it fairs no better. The maddening thing is that this used to work for me, but with my brand-new laptop with WinXP - it's broken.
Does anyone have an idea how to allow a normal Windows user to open a raw socket so that icmp pings can work?
TIA
GreyGeek
|
|---|