Jak zjistit zemi podle IP adresy?

Publikováno v sekci PHP v Sobotu 12.1.2008 - 03:44

Pokud potřebujeme zjistit zemi, ze které daná IP adresa pochází, můžeme použit sofistikované a robustní sofware či nástroje jakým může být například GeoIP. Tento skript však nabízí snadné použití a poměrně efektivní výsledek.
<?php
function getCountryByIp($ip)
  {
    $file = file_get_contents("http://ripe.net/fcgi-bin/whois?form_type=simple&full_query_string=&searchtext=".$ip."&submit.x=4&submit.y=6&submit=Search");
    
    preg_match("~netname:(.+?)descr~si", $file, $poskytovatel);
    preg_match("~country:(.+?)admin-c~si", $file, $zeme);
    
    $_poskytovatel = trim($poskytovatel[1]);
    $_zeme = trim($zeme[1]); 

    return array($_zeme, $_poskytovatel);
  }
  
  
  
   list($zeme, $poskytovatel) = getCountryByIp('78.102.107.192');
   
   echo $zeme ."<br />" .
        $poskytovatel;
?>

K této funkci něco málo. Načteme si data z RIPE.NET s požadovanou adresou a pomocí jednoduchého regulárního výrazu si vrátíme zemi a poskytovatele dané IP adresy. Samozřejme by se dalo získat více informací, ale to není problém rozšířit dalšími regulárními výrazy. Pro lepší rychlost by se mohl skriptovat cachovat, ale o tom jindy.

3 komentáře « Zpět


Komentáře

Mám následující php skript:
$ip=getenv("REMOTE_ADDR");
$br=getenv("HTTP_USER_AGENT");
$file=fopen("ip.txt", "a");
$zaznam="\n".$ip." | ".$br."\n";
fwrite($file, $zaznam);
fclose($file);
?>
Ale pořád mi vypisuje stejnou IP, ať jsem na jakémkoliv PC. Nevíte, čím to je?
reagovat #2 Roman Janko: (Administrátor) admin@rjwebdesign.net
04.02.09 21:07
Jak to souvisi s timto clankem?
reagovat #3 Pavel:
17.02.09 18:40
Tak tohle jsem bezúspěchu řešil nevím jak dlouho. Díky moc za článek...

Přidat komentář

Nový vzkaz

* Tato pole jsou povinná, [smajlíci]

  • na jiné komentáře odkazujte pomocí odkazu reagovat
  • vaše IP adresa bude zaznamenána
  • používají se gravatary
  • můžeme si tykat
  • HTML tagy vypnuty. PHP kód se také neprovede. Pokud potřebuju přiložit ukázku vašeho kódu, použijete službu pastebin, nebo jej vložte mezi značky [code] [/code]
  • vulgární, rasistické či jinak nepřípustné komentáře budou smazány

Poslední komentáře

Rychlý kontakt

Já na sociálních sítích



Hlavní navigace


[ ↑ k obsahu ↑ ]