(re-ordered for thematic reasons) Thanks all for responses.
It might also be useful to GET your modem's status page. It can tell if your connection from your house or office to your ISP is up or not.
This simple advice came just in time for me to ask the comcast guy the address. It isn't the old 192.0.0.1 it used to be, and the page seems to have more functionality than I recall.
Another option is LWP::Online.
I'd like to unpack this a bit. First, I do have a working script:
$ ./1.lwp.pl
execution here
execution there
$ cat 1.lwp.pl
#!/usr/bin/perl
use 5.016;
use warnings;
use LWP::Online 'online';
say "execution here";
# "Is the internet working?"
die "NO INTARWWEB!!!" unless online();
say "execution there";
__END__
$
I attempted to dig through a few parts of this listing for Online.pm. I have any number of questions after having contended with the source for several days now. Regarding this snippet:
# Set up configuration data
use vars qw{%SUPPORTED @RELIABLE_HTTP};
BEGIN {
# What transports do we support
%SUPPORTED = map { $_ => 1 } qw{ http };
# (Relatively) reliable websites
@RELIABLE_HTTP = (
# These are some initial trivial checks.
# The regex are case-sensitive to at least
# deal with the "couldn't get site.com case".
'http://www.msftncsi.com/ncsi.txt' => sub { $_ eq 'Mic
+rosoft NCSI' },
'http://google.com/' => sub { /About Goo
+gle/ },
'http://yahoo.com/' => sub { /Yahoo!/
+ },
'http://amazon.com/' => sub { /Amazon/ a
+nd /Cart/ },
'http://cnn.com/' => sub { /CNN/
+ },
);
}
What is happening with the subs here?
You get about hip deep in it and need to look at source for LWP::Simple. Is this a core module?
In this snippet from LWP::Online, how does it import a lexical variable?
use LWP::Simple 5.805 qw{ get $ua };
use vars qw{$VERSION @ISA @EXPORT_OK};
BEGIN {
$VERSION = '1.08';
# We are an Exporter
require Exporter;
@ISA = qw{ Exporter };
@EXPORT_OK = qw{ online offline };
# Set the useragent timeout
$ua->timeout(30);
}
This is get in LWP::Simple
sub get ($)
{
my $response = $ua->get(shift);
return $response->decoded_content if $response->is_success;
return undef;
}
How would one add his own site to @RELIABLE_HTTP?
Thanks for your comments |