Auf den Hosting-Servern ist die Bibliothek des Moduls GeoIP für apache, nginx und PHP (für alle unterstützten Versionen) vorinstalliert.
Die Bibliothek GeoIP — ermöglicht es, die Region zu erhalten, zu der die IP-Adresse gehört, von der die Anfrage gesendet wird.
Unsere Server verarbeiten 4 Header:
GEOIP_ADDR - IP-Adresse, von der die Anfrage gesendet wird;
GEOIP_CONTINENT_CODE - Kontinentcode (Europa, Asien, Amerika usw.);
GEOIP_COUNTRY_CODE - Ländercode, zu dem die IP-Adresse gehört;
GEOIP_COUNTRY_NAME - Name des Landes, zu dem die IP-Adresse gehört;
Die Bezeichnungen der Länder und die Liste der entsprechenden Codes sind hier verfügbar: Link zur Quelle
Auf die von dem Server übergebenen Variablen können Sie zugreifen, indem Sie .htaccess oder die integrierte PHP-Bibliothek verwenden.
Um auf die Werte zuzugreifen, können Sie zwei Arten von Umgebungen verwenden (HTTP und ENV):
HTTP:GEOIP_COUNTRY_CODE oder ENV:GEOIP_COUNTRY_CODE — .htaccess;
$_SERVER['HTTP_GEOIP_ADDR'] oder $_SERVER['HTTP_GEOIP_COUNTRY_CODE'] - Abrufen von Daten aus dem $_SERVER-Array für PHP;
— den Zugriff für alle außer IP-Adressen aus der Ukraine mit .htaccess:
RewriteEngine On
RewriteCond %{HTTP:GEOIP_COUNTRY_CODE} !^(UA)$
RewriteRule .* - [F]
oder
SetEnvIf GEOIP_COUNTRY_CODE UA allowed_country
Allow from env=allowed_country
Deny from all
— den Zugriff für alle außer IP-Adressen aus der Ukraine und Deutschland unter Verwendung von .htaccess :
RewriteEngine On
RewriteCond %{HTTP:GEOIP_COUNTRY_CODE} !^(UA|DE)$
RewriteRule .* - [F]
oder
SetEnvIf GEOIP_COUNTRY_CODE UA allowed_country
SetEnvIf GEOIP_COUNTRY_CODE DE allowed_country
Allow from env=allowed_country
Deny from all
— den Zugriff für alle Benutzer aus Deutschland unter Verwendung von .htaccess :
RewriteEngine On
RewriteCond %{HTTP:GEOIP_COUNTRY_CODE} ^(DE)$
RewriteRule .* - [F]
oder
SetEnvIf GEOIP_COUNTRY_CODE DE denied_country
Deny from env=denied_country
— Weiterleitung von der Hauptdomain auf die mehrsprachige Subdomain für alle Benutzer, die nicht aus der Ukraine kommen, abhängig von der Region (zum Beispiel, wenn der Besucher aus Deutschland kommt - auf die Subdomain DE.DOMAIN_NAME.ZONE weiterleiten, wenn aus der Ukraine - keine Weiterleitungen durchführen) unter Verwendung von .htaccess:
RewriteEngine On
RewriteCond %{HTTP:GEOIP_COUNTRY_CODE} !^(UA)$
RewriteRule ^(.*) https://%{HTTP:GEOIP_COUNTRY_CODE}\.%{HTTP_HOST}/$1 [L,R=301]
— Beispiel für die Implementierung in PHP unter Verwendung des globalen Variablenbereichs $_SERVER:
var_dump($_SERVER['HTTP_GEOIP_ADDR']);
var_dump($_SERVER['HTTP_GEOIP_CONTINENT_CODE']);
var_dump($_SERVER['HTTP_GEOIP_COUNTRY_CODE']);
var_dump($_SERVER['HTTP_GEOIP_COUNTRY_NAME']);
— Beispiel für die Implementierung in PHP unter Verwendung der Funktion getenv():
var_dump(getenv(HTTP_GEOIP_ADDR));
var_dump(getenv(HTTP_GEOIP_CONTINENT_CODE));
var_dump(getenv(HTTP_GEOIP_COUNTRY_CODE));
var_dump(getenv(HTTP_GEOIP_COUNTRY_NAME));
— Beispiel für die Implementierung in PHP unter Verwendung der PHP GeoIP-Bibliothek:
$client_ip = $_SERVER['REMOTE_ADDR'];
var_dump(geoip_country_code_by_name($client_ip));
var_dump(geoip_continent_code_by_name($client_ip));
var_dump(geoip_country_name_by_name($client_ip));
Alle Kategorien von Fragen