Lokalizace zeme dle IP adresy (databaze)
Napísané: Ut Nov 07, 2006 12:45 am
Zkopiroval a upravil jsem PHP skript do meho prvniho snippetu pro lokalizaci zeme dle IP adresy, snippet vraci CC(Country code). Pouziva mysql db a importovane data z free (lite) databaze (takze to nemusi byt uplne presne, uvadena presnost je 97% a update je 1x mesicne):
======================================
$remote_addr=$_SERVER['REMOTE_ADDR'];
$ipnum = sprintf("%u", ip2long($remote_addr));
$tbl_geo_ip = $etomite->dbConfig['dbase'].".geo_ip";
$tbl_geo_cc = $etomite->dbConfig['dbase'].".geo_cc";
$sql = "SELECT cc FROM $tbl_geo_ip NATURAL JOIN $tbl_geo_cc WHERE ${ipnum} BETWEEN start AND end;";
$rs = $etomite->dbQuery($sql);
if ($etomite->recordCount($rs) >= 1){
$row = $etomite->fetchRow($rs);
$output="$row[cc]";
} else {
$output="--";
}
return $output;
========================================
Databaze: http://www.maxmind.com/app/geoip_country
Optimilizace DB a PHP kod: http://www.delau.net/php/geoip.html
---
Cajt
======================================
$remote_addr=$_SERVER['REMOTE_ADDR'];
$ipnum = sprintf("%u", ip2long($remote_addr));
$tbl_geo_ip = $etomite->dbConfig['dbase'].".geo_ip";
$tbl_geo_cc = $etomite->dbConfig['dbase'].".geo_cc";
$sql = "SELECT cc FROM $tbl_geo_ip NATURAL JOIN $tbl_geo_cc WHERE ${ipnum} BETWEEN start AND end;";
$rs = $etomite->dbQuery($sql);
if ($etomite->recordCount($rs) >= 1){
$row = $etomite->fetchRow($rs);
$output="$row[cc]";
} else {
$output="--";
}
return $output;
========================================
Databaze: http://www.maxmind.com/app/geoip_country
Optimilizace DB a PHP kod: http://www.delau.net/php/geoip.html
---
Cajt