package WWW::Amazon::checkip;
use 5.008;
use strict;
use warnings;
our $VERSION = '0.01';
use HTTP::Tiny;
BEGIN {
require Exporter;
use base 'Exporter';
our @EXPORT = 'get_ip';
our @EXPORT_OK = ();
}
sub get_ip {
my $response = HTTP::Tiny->new->get("http://checkip.amazonaws.com/");
die sprintf 'Error fetching ip: %s %s',
($response->{status} || ''),
($response->{reason} || '') unless $response->{success};
chomp $response->{content};
return $response->{ content };
}
1;
=pod
=encoding UTF-8
=head1 NAME
WWW::Amazon::checkip - Returns your ip address using L
=head1 VERSION
version 0.01
=head1 SYNOPSIS
use WWW::Amazon::checkip;
my $ip = get_ip();
or from the command line
perl -MWWW::Amazon::checkip -E 'say get_ip'
=head1 EXPORTS
Exports the C function.
=head1 FUNCTIONS
=head2 get_ip
Returns your external ipv4 address.
=head1 SEE ALSO
L - a similar module that returs your up address
L - a similar module that returns your ip address and more
L - a similar module that returns your ip address
L - a wrapper module that uses up to 3 services to retrieve your IP address
=head1 AUTHOR
Jose Luis Martinez Torres
Based on the work by David Farrell for L
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2017 by CAPSiDE
This code is distributed under the Apache 2 License. The full text of the
license can be found in the LICENSE file included with this module.
=cut