Rechercher une page de manuel
Apache2::Geo::Mirror.3pm
Langue: en
Version: 2008-01-17 (mandriva - 01/05/08)
Section: 3 (Bibliothèques de fonctions)
NAME
Apache2::Geo::Mirror - Find closest MirrorSYNOPSIS
# 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 asPerlModule 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.10SEE 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.
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre