-
-
08 Apr 2007 00:26:47 UTC
- Distribution: Apache-GeoIP
- Module version: 1.63
- Source (raw)
- Browse (raw)
- Changes
- How to Contribute
- Issues (1)
- Testers (24 / 10 / 0)
- Kwalitee
Bus factor: 0- License: perl_5
- Activity
24 month- Tools
- Download (393.35KB)
- MetaCPAN Explorer
- Permissions
- Subscribe to distribution
- Permalinks
- This version
- Latest version
- Dependencies
- Apache2::RequestRec
- and possibly others
- Reverse dependencies
- CPAN Testers List
- Dependency graph
NAME
Apache2::Geo::Mirror - Find closest Mirror
SYNOPSIS
# in httpd.conf # PerlModule Apache2::HelloMirror #<Location /mirror> # SetHandler perl-script # PerlResponseHandler Apache2::HelloMirror # PerlSetVar GeoIPDBFile "/usr/local/share/GeoIP/GeoIP.dat" # PerlSetVar GeoIPFlag Standard # PerlSetVar GeoIPMirror "/usr/local/share/data/mirror.txt" # PerlSetVar GeoIPDefault it #</Location> # file Apache2::HelloMirror use Apache2::Geo::Mirror; use strict; use Apache2::Const -compile => 'OK'; sub handler { my $r = Apache2::Geo::Mirror->new(shift); $r->content_type('text/plain'); my $mirror = $r->find_mirror_by_addr(); $r->print($mirror); Apache2::Const::OK; } 1;
DESCRIPTION
This module provides a mod_perl (version 2) interface to the Geo::Mirror module, which finds the closest mirror for an IP address. It uses Geo::IP to identify the country that the IP address originated from. If the country is not represented in the mirror list, then it finds the closest country using a latitude/longitude table.
CONFIGURATION
This module subclasses Apache2::RequestRec, and can be used as follows in an Apache module.
# file Apache2::HelloMirror use Apache2::Geo::Mirror; use strict; sub handler { my $r = Apache2::Geo::Mirror->new(shift); # continue along }
The
PerlSetVar
directives in httpd.conf are as follows:<Location /mirror> PerlSetVar GeoIPDBFile "/usr/local/share/geoip/GeoIP.dat" PerlSetVar GeoIPFlag Standard PerlSetVar GeoIPMirror "/usr/local/share/data/mirror.txt" PerlSetVar GeoIPDefault us # other directives </Location>
The directives available are
- PerlSetVar GeoIPDBFile "/path/to/GeoIP.dat"
-
This specifies the location of the GeoIP.dat file. If not given, it defaults to the location specified upon installing the module.
- PerlSetVar GeoIPFlag Standard
-
This can be set to STANDARD, or for faster performance but at a cost of using more memory, MEMORY_CACHE. When using memory cache you can force a reload if the file is updated by using CHECK_CACHE. The INDEX_CACHE flag caches the most frequently accessed portion of the database. If not specified, STANDARD is used.
- PerlSetVar GeoIPMirror "/path/to/mirror.txt"
-
This specifies the location of a file containing the list of available mirrors. This file contains a list of mirror sites and the corresponding country code in the format
http://some.server.com/some/path us ftp://some.other.server.fr/somewhere fr
No default location for this file is assumed.
- PerlSetVar GeoIPDefault country
-
This specifies the country code to be used if a wanted country is not available in the mirror file. This defaults to us.
METHODS
The available methods are as follows.
- $mirror = $r->find_mirror_by_country( [$country] );
-
Finds the nearest mirror by country code. If $country is not given, this defaults to the country as specified by a lookup of
$r->connection->remote_ip
. - $mirror = $r->find_mirror_by_addr( [$ipaddr] );
-
Finds the nearest mirror by IP address. If $ipaddr is not given, this defaults
$r->connection->remote_ip
. - $mirror = $r->find_mirror_by_name( [$ipname] );
-
Finds the nearest mirror by country code. If $ipname is not given, this defaults to
$r->get_remote_host(Apache2::Const::REMOTE_HOST)
.
AUTOMATIC REDIRECTION
If Apache2::Geo::Mirror is used as
PerlModule Apache2::Geo::Mirror <Location /CPAN> PerlSetVar GeoIPDBFile "/usr/local/share/geoip/GeoIP.dat" PerlSetVar GeoIPFlag Standard PerlSetVar GeoIPMirror "/usr/local/share/data/mirror.txt" PerlSetVar GeoIPDefault us PerlResponseHandler Apache2::Geo::Mirror->auto_redirect </Location>
then an automatic redirection is made.
VERSION
0.10
SEE ALSO
Geo::IP, Geo::Mirror, and Apache2::RequestRec.
AUTHOR
The look-up code for associating a country with an IP address is based on the GeoIP library and the Geo::IP Perl module, and is Copyright (c) 2002, T.J. Mather, tjmather@tjmather.com, New York, NY, USA. See http://www.maxmind.com/ for details. The mod_perl interface is Copyright (c) 2002, Randy Kobes <randy@theoryx5.uwinnipeg.ca>.
All rights reserved. This package is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Module Install Instructions
To install Apache::GeoIP, copy and paste the appropriate command in to your terminal.
cpanm Apache::GeoIP
perl -MCPAN -e shell install Apache::GeoIP
For more information on module installation, please visit the detailed CPAN module installation guide.