Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Re^2: perl daemon surviving changing ppp-links

by raphi72 (Initiate)
on Oct 20, 2005 at 21:48 UTC ( [id://501825]=note: print w/replies, xml ) Need Help??


in reply to Re: perl daemon surviving changing ppp-links
in thread perl daemon surviving changing ppp-links

Thanks for that hint. I now use IO::Interface to get my local ppp0 ip-address:
use IO::Socket; use IO::Interface qw(:flags); sub get_local_addr { my $if = shift; my $s = IO::Socket::INET->new(Proto => 'udp'); unless ($s->if_flags($if) & IFF_RUNNING) { return undef; } else { return $s->if_addr($if); } }
and then in my script I test, if the ip-address of the ppp0 interface changed:
use Net::Ping; my $addr = get_local_addr("ppp0"); unless(defined $addr) { die "I'm offline\n"; } while (1) { my $p = Net::Ping->new(udp); if $p->ping($host) { print "success\n"; } else { print "failed\n"; my $cur_addr = get_local_addr("ppp0"); if ($addr ne $cur_addr) { die "I'm offline\n"; } } undef $p; sleep 3; }
There's no need to restart the script, because it will get started by my if-up script.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://501825]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others exploiting the Monastery: (6)
As of 2024-04-25 08:16 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found