The module of definition of a geographical position on IP - mod_GeoIP
The quite good module for apache1.3 - on IP the visitor is defined{determined} his country, region and city. Can be useful to cut the left visitors - Chinese, for example, or amerikosov. All the same at me on a site it nothing them:) So, we put from ports:
/usr/home/lissyara/>
/usr/home/lissyara/> cd/usr/ports/
/usr/ports/> make search name ='mod_geoip '
Port: mod_geoip-1.2.7
Path:/usr/ports/www/mod_geoip
Info: An Apache module that provides the country code of the client's IP
Maint: seanc@FreeBSD.org
B-deps: GeoIP-1.3.14 apache-1.3.34_3 expat-1.95.8_3 perl-5.8.7_2
R-deps: GeoIP-1.3.14 apache-1.3.34_3 expat-1.95.8_3 perl-5.8.7_2
WWW: http://www.maxmind.com/app/mod_geoip
Port: mod_geoip2-1.1.7
Path:/usr/ports/www/mod_geoip2
Info: An Apache module that provides the country code of the client's IP
Maint: jau@iki.fi
B-deps: GeoIP-1.3.14 apache-2.0.55_2 expat-1.95.8_3 libiconv-1.9.2_1 perl-5.8.7_2
R-deps: GeoIP-1.3.14 apache-2.0.55_2 expat-1.95.8_3 libiconv-1.9.2_1 perl-5.8.7_2
WWW: http://www.maxmind.com/app/mod_geoip
/usr/ports/> cd/usr/ports/www/mod_geoip
/usr/ports/www/mod_geoip/> make ** make install ** make clean
......................................
......................................
************************************************************
Please edit your apache.conf or httpd.conf to enable and
setup this module.
You can always refer to the useful documents held in
$ {PREFIX}/share/doc/mod_geoip/, where $ {PREFIX} is
typically/usr/local.
When it's done, do the following to take effect:
apachectl configtest (and correct any errors reported)
apachectl restart
************************************************************
/usr/ports/www/mod_geoip/> pkg_info | grep " [Gg] eo "
GeoIP-1.3.14 Find the country that any IP address or hostname originates
mod_geoip-1.2.7 An Apache module that provides the country code of the clie
/usr/ports/www/mod_geoip/>
He behind itself(himself) drags actually GeoIP <http: // www.internet-technologies.ru/? url=http%3A%2F%2Fwww.maxmind.com%2Fgeoip%2F> - from him to him it is necessary for a DB. After installation we edit a config of the apache - raskommentruem the module mod_geoip <http: // www.internet-technologies.ru/? url=http%3A%2F%2Fwww.maxmind.com%2Fapp%2Fmod_geoip>:
/usr/local/etc/apache/httpd.conf
LoadModule geoip_module libexec/apache/mod_geoip.so
AddModule mod_geoip.c
Also we add such lines:
<IfModule mod_geoip.c>
***** Module GeoIP began
*
* We include the module
GeoIPEnable On
* We specify a way to a DB (in docks to be spoken, that
* It is necessary a current if a site of a DB non-standard, but
* What is considered standard - anywhere has not found - therefore
* Just in case I specify) - a DB installitsja together with
* Port GeoIP.
GeoIPDBFile/usr/local/share/GeoIP/GeoIP.dat
* The following directive establishes where the module is applied
* GeoIP (at least I so have understood) - a current in notes apache (Notes),
* Only in variables of an environment (Env) or everywhere (All - on a default):
GeoIPOutput All
* Forces to check DB GeoIP.dat to define{determine}, whether the DB was updated
* It is necessary to not restart the apache at updating a DB
GeoIPFlags CheckCache
****** An example of blocking of the separate countries
* We block kosoglazen`kikh - all the same nichjo will not understand
SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
* We block amerikosov - too nichjo will not understand, stupid{blunt} too.
SetEnvIf GEOIP_COUNTRY_CODE US BlockCountry
* That we, sobstveno, do{make} by above-stated rules,
* It should be in a directory which we block, i.e. inside
* <Directory "/usr/local/www/data">
*...............
*Deny from env=BlockCountry
* </Directory>
</IfModule>
Then we restart the apache, and it is tasted, that at us it has turned out, such skriptikom, on php:
<pre>
Whence it was secured:
<? php
$country_code = apache_note ("GEOIP_COUNTRY_CODE");
$region = apache_note ("GEOIP_REGION");
$country_name = apache_note ("GEOIP_COUNTRY_NAME");
$city = apache_note ("GEOIP_CITY");
echo " the Country code: ". $country_code. "\n";
echo " Region: ". $region. "\n";
echo " the Name of the country: ". $country_name. "\n";
echo " City: ". $city. "\n";
?>
</pre>
His conclusion, for Moscow IP:
Whence it was secured:
Country code: RU
Region:
Name of the country: Russian Federation
City:
If to come with private{individual} IP (192.168.x.x) that will not show anything:) Why has not shown region and city - I so I think that count us the country wild where except for bears, in padded jackets and caps - caps with earlaps anything and is not present nuclear rockets, both people... By the way, in examples, on a site of the author of the module, the example was how to block access from region RU. I in the answer have given an example as zalochit` burzhuev:) Pshli nakh:)
P.S. It is added on results of the first comment. Where to take bases - here any program lays, did not penetrate. To her idud bases. It is necessary to put ` expert ` the version then bases will be established. Bases it is copied where it is necessary, correct it is sensitive a config:
<IfModule mod_geoip.c>
***** Module GeoIP began
*
* We include the module
GeoIPEnable On
* We specify a way to a DB (in docks to be spoken, that
* It is necessary a current if a site of a DB non-standard, but
* What is considered standard - anywhere has not found - therefore
* Just in case I specify) - a DB installitsja together with
* Port GeoIP.
GeoIPDBFile/usr/local/share/GeoIP/GeoIP.dat
GeoIPDBFile/usr/local/share/GeoIP/GeoIPCity.dat
GeoIPDBFile/usr/local/share/GeoIP/GeoIPOrg.dat
* The following directive establishes where the module is applied
* GeoIP (at least I so have understood) - a current in notes apache (Notes),
* Only in variables of an environment (Env) or everywhere (All - on a default):
GeoIPOutput All
* Forces to check DB GeoIP.dat to define{determine}, whether the DB was updated
* It is necessary to not restart the apache at updating a DB
GeoIPFlags CheckCache
****** An example of blocking of the separate countries
* We block kosoglazen`kikh - all the same nichjo will not understand
SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
* We block amerikosov - too nichjo will not understand, stupid{blunt} too.
SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
* That we, sobstveno, do{make} by above-stated rules,
* It should be in a directory which we block, i.e. inside
* <Directory "/usr/local/www/data">
*...............
*Deny from env=BlockCountry
* </Directory>
</IfModule>
Then it is accessible more than the data (apparently there is still a base of providers since ISP at me not vysvechivaetsja):
<?
<pre>
<b> Whence it was secured </b>
<? php
$country_code = apache_note ("GEOIP_COUNTRY_CODE");
$region = apache_note ("GEOIP_REGION");
$country_name = apache_note ("GEOIP_COUNTRY_NAME");
$city = apache_note ("GEOIP_CITY");
$connect_type = apache_note ("GEOIP_NETSPEED");
$dma_code = apache_note ("GEOIP_DMA_CODE");
$area_code = apache_note ("GEOIP_AREA_CODE");
$latitude = apache_note ("GEOIP_LATITUDE");
$longitude = apache_note ("GEOIP_LONGITUDE");
$postal_code = apache_note ("GEOIP_POSTAL_CODE");
$organization = apache_note ("GEOIP_ORGANIZATION");
$isp = apache_note ("GEOIP_ISP");
echo " the Country code: ". $country_code. "\n";
echo " Region: ". $region. "\n";
echo " the Name of the country: ". $country_name. "\n";
echo " City: ". $city. "\n";
echo " Speed: ". $connect_type. "\n";
echo " dma_code: ". $dma_code. "\n";
echo " area_code: ". $area_code. "\n";
echo " latitude: ". $latitude. "\n";
echo " longitude: ". $longitude. "\n";
echo " postal_code: ". $postal_code. "\n";
echo " the Organization: ". $organization. "\n";
echo " the Provider: ". $isp. "\n";
?>
Whence it was secured
Country code: RU
Region: 48
Name of the country: Russian Federation
City: Moscow
Speed:
dma_code: 0
area_code: 0
latitude: 55.752201
longitude: 37.615601
postal_code:
organization:Network of NICEVT
isp:
Half of items{points} is not quite clear... Well and it is not important.

|