Newsletter

  • Immer informiert über die neusten Trends, Webseiten und Tutorials! Einfach hier für den monatlichen Newsletter anmelden.
  •  Eintragen
  •  Austragen

Login

Umfrage

  • Haben Sie Interesse an Softwaretipps für Webmaster?
  •  
  • ja
  • nein
  •  


Linktipps

Anzeige

 

www.finanzcheck.de
» Startseite » PHP und MySQL Tutorials

IP2Country Script

Kurze Erläuterung zu dem IP2Country Script von webmaster-eye.de.

Mit dem auch auf webmaster-eye.de befindlichen IP2Country Tool, können Sie IP Adressen nach Ländern auflösen. Das heißt Sie geben eine IP Adresse ein und erhalten als Ergebnis das jeweilige Land aus dem die IP Adresse stammt. Als Datenbank verwende ich die CSV Datei ip-to-country.csv von ip-to-country.webhosting.info. Das PHP Script was dann die IP Adresse auswertet sieht wie folgt aus:

  1.  <?php
  2.  function findcountry($ip){
  3.      // Datei einlesen
  4.      $countrydb = file("/pfad/zu/ip-to-country.csv");
  5.     
  6.      // IP umformen   
  7.      $ip_number = sprintf("%u",ip2long($ip));
  8.     
  9.      // Binärsuche starten
  10.      $low = 0;
  11.      $high = count($countrydb) -1;
  12.      $count = 0;
  13.     
  14.      while($low <= $high) { 
  15.     
  16.          $count++;
  17.          $mid = floor(($low + $high) / 2)// C floors for you
  18.          $num1 = substr($countrydb[$mid], 1, 10);
  19.          $num2 = substr($countrydb[$mid], 14, 10);
  20.         
  21.          if($num1 <= $ip_number && $ip_number <= $num2){ 
  22.         
  23.              // Länderkennung ausgeben
  24.              print "Länderkennung: " . substr($countrydb[$mid], 27, 2);
  25.              break;
  26.             
  27.          } else { 
  28.         
  29.              if ($ip_number < $num1) { 
  30.             
  31.                  $high = $mid - 1
  32.                 
  33.              } else { 
  34.             
  35.                  $low = $mid + 1
  36.                 
  37.              } 
  38.             
  39.          } 
  40.         
  41.      } 
  42.     
  43.  }
  44.  ?>

Durch den Aufrufen der Funktion

  1.  <?php
  2.  findcountry("123.456.789.000");
  3.  ?>

erhält man dann den entsprechenden Ländercode.

Fragen? Probleme? Keine Antworten? Hilfe finden Sie im Webmaster Forum!

Diese Artikel könnten Sie auch interessieren:
Reguläre Ausdrücke
Alternative Syntax für Kontroll-Strukturen
Unterschiedlicher Footer auf verschiedenen Seiten
String nach Wortende trennen
Was ist PHP?


 
Anzeige