Publikováno v sekci PHP v
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.
1: <?php function getCountryByIp($ip) 2: { 3: $file = file_get_contents("<a href="http://ripe.net/fcgi-bin/whois?form_type=simple&full_query_string=&searchtext=".$ip."&submit.x=4&submit.y=6&submit=Search">http://ripe.net/fcgi-bin/whois?form_type=simple&full_query_string=&searchtext=".$ip."&submit.x=4&submit.y=6&submit=Search</a>");</p> 4: <pre><code>preg_match("~netname:(.+?)descr~si", $file, $poskytovatel); 5: preg_match("~country:(.+?)admin-c~si", $file, $zeme); 6: 7: $_poskytovatel = trim($poskytovatel[1]); 8: $_zeme = trim($zeme[1]); 9: 10: return array($_zeme, $_poskytovatel);</code></pre> 11: <p>}</p> 12: <p>list($zeme, $poskytovatel) = getCountryByIp('78.102.107.192');</p> 13: <p>echo $zeme ."<br /?> 14: " . $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.