in reply to Re: icmp socket error
in thread icmp socket error

this is the error i get :Error when i ping @ line 14.... when i run ur code ..... ani ways .. i hav installed 5.8.4 now ... n i made some changes in the previous code ....i hav added print statements .... now i do get the output in the from of the added print statements ... but it still does not adds the relavent data into my access db ..... thanks AnooP

Replies are listed 'Best First'.
Re^3: icmp socket error
by greygeek (Initiate) on Feb 18, 2005 at 20:56 UTC
    I am having a similar problem under Windows XP and Perl 5.8.6:
    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