2010-11-26 5 views
9

Services, die die geben APIWas ist die beste Lösung, um ein Nutzerland zu überprüfen?

ich gelesen/gehört, dass es eine große Anzahl an Dienstleistungen, die API gibt, dies zu tun, aber ich will nicht wirklich auf jemanden verlassen, so wenden Sie sich bitte, wenn eine Art und Weise zu tun ist es ohne sie ließ mich wissen.

Server Side

Und auch habe ich gelesen/gehört, dass dies in Server-Seite erfolgt Codierung, was mich verwirrt macht, dachte ich immer, dass dies durch Javascript gemacht wird.

IP-Liste

Und ich habe auch gelesen/gehört, dass diese Dienste, die API gibt sie eine sehr große Liste von IP-Adressen von ISPs haben, und sie können das Land von dieser Liste bestimmen, ist das wahr? Und wenn ich es ohne APIs alleine schaffen möchte, sollte ich auch eine Liste haben?

+0

Meinen Sie die aktuellen Standortdaten des Benutzers? – Gumbo

+0

Umm ich meine Land, Beispiel USA, Russland, China usw. – Adam

Antwort

6

Wenn ich meine Lookup tat, habe ich dieses Skript: http://www.phptutorial.info/iptocountry/the_script.html

Die db eine Liste von PHP-Dateien und Sie können in eine Liste eintragen, die Sie von Datenbank-Updates benachrichtigt wird. Ziemlich nützlich, wenn Sie keine Datenbank haben :)

+0

danke es ist ein sehr nützlicher Link :) – Adam

1

Jegliche Überprüfung wird normalerweise per IP und mit Hilfe einer Datenbank von ipranges und zu welchem ​​Land zugewiesen.

Dies funktioniert in den meisten Fällen, es sei denn, der Benutzer verwendet einen Proxy oder likewize.

Die meisten kosten Geld oder sind nur für bestimmte Zwecke verfügbar.

Eine andere Lösung, aber nicht so zuverlässig ist die Verwendung der Browser langugae und möglicherweise, wenn Sie für die Zeitzone abfragen können.

Ich habe keine speziellen Dienstleistungen zu empfehlen, da die meisten von ihnen nicht kommerzielle Nutzung erlauben es, und daher kann ich sie nicht verwenden;)

+0

hmm vielen Dank für Sie beantworten, die Browser-Zeitzone ist eine sehr gute Idee, wusste ich nicht, dass solche existiert eine Sache in einem Browser, aber wie zuverlässig ist es?Ich meine Browser-Kompatibilität, und wie es funktioniert? – Adam

+0

Hmm, aber das Problem mit der Zeitzone ist, dass es viele Länder in der gleichen Zeitzone gibt: O – Adam

+0

Es ist nicht so zuverlässig wie eine gute GeoIP-Tabelle, aber die Kombination von Sprache + Zeitzon würde zumindest einen Hinweis darauf geben, woher sie kommen könnten . Alles hängt davon ab, wofür Sie die Informationen benötigen und wie zuverlässig Sie diese benötigen. –

2

MaxMind bietet die GeoLite Country IP-Datenbank, die auch von einigen Web-Log-Analysatoren wie Webalizer und AWStats verwendet wird oder unterstützt.

Es ist kostenlos im CSV-Format verfügbar, das Sie in die Datenbank Ihrer Anwendung importieren können. Sie bieten auch eine umfassende Sammlung von guides and examples.

2

Eine einfache Möglichkeit, das Land des Benutzers zu erhalten, besteht darin, den Header HTTP_ACCEPT_LANGUAGE zu lesen.

Hier ist ein Beispiel (PHP):

$langcodes=$_SERVER['HTTP_ACCEPT_LANGUAGE']; 
$host=gethostbyaddr($_SERVER['REMOTE_ADDR']); 

if(preg_match("/(bg|bg-BG|cs|cs-CZ|da|da-DK|de|de-AT|de-CH|de-DE|de-LI|de-LU|el|el-GR|en-GB|en-IE|es-ES|et|et-EE|fi|fi-FI|fr-BE|fr-CH|fr-FR|fr-LU|fr-MC|ga|hu|hu-HU|it|it-CH|it-IT|lt|lt-LT|lv-LV|lv|mt|mt-MT|nl|nl-BE|nl-NL|pl|pl-PL|pt-PT|ro|ro-RO|sk|sl|sk-SK|sv|sv-FI|sv-SE|fr)([,;].*)?$/i",$langcodes) 
    || preg_match("/(\.ad|\.al|\.at|\.ax|\.ba|\.be|\.bg|\.by|\.ch|\.cy|\.cz|\.de|\.dk|\.ee|\.es|\.eu|\.fi|\.fo|\.fr|\.gb|\.gg|\.gi|\.gr|\.hr|\.hu|\.ie|\.im|\.is|\.it|\.je|\.li|\.lt|\.lu|\.lv|\.mc|\.md|\.me|\.mk|\.mt|\.nl|\.no|\.pl|\.pt|\.ro|\.rs|\.se|\.si|\.sk|\.sm|\.ua|\.uk|\.va)$/i", $host)) 
{ 
    echo "European User"; 
} 
else 
    echo "non-European User"; 
Verwandte Themen