php-geoip
Description:
PHP geoip 확장. maxmind에서 제공하는 API와는 다른 버전이다.
Features:
function base sample codes:
<?php
$searches = array ('oops.org', 'kornet.net', 'yahoo.com');
try {
$g = GeoIP_open (GEOIP_MEMORY_CACHE|GEOIP_CHECK_CACHE);
if ( GeoIP_db_avail (GEOIP_CITY_EDITION_REV0) )
$gc = GeoIP_open (GEOIP_CITY_EDITION_REV0, GEOIP_INDEX_CACHE|GEOIP_CHECK_CACHE);
if ( GeoIP_db_avail (GEOIP_ISP_EDITION) )
$gi = GeoIP_open (GEOIP_ISP_EDITION, GEOIP_INDEX_CACHE|GEOIP_CHECK_CACHE);
if ( ! is_resource ($g) )
exit;
#echo "TYPE: " . geoip_database_info ($g) ."\n";
foreach ( $searches as $v ) {
$r = geoip_id_by_name ($g, $v);
print_r ($r);
if ( is_resource ($gc) ) {
$rc = GeoIP_record_by_name ($gc, $v);
print_r ($rc);
}
if ( is_resource ($gi) ) {
$ri = GeoIP_org_by_name ($gi, $v);
echo " $ri\n";
}
#echo "### " . geoip_country_code_by_name ($g, $v) . "\n";
#echo "### " . geoip_country_name_by_name ($g, $v) . "\n";
}
if ( is_resource ($gc) ) GeoIP_close ($gc);
if ( is_resource ($gi) ) GeoIP_close ($gi);
GeoIP_close ($g);
} catch ( GeoIPException $e ) {
fprintf (STDERR, "%s\n", $e->getMessage ());
$err = preg_split ('/\r?\n/', $e->getTraceAsString ());
print_r ($err);
}
?>
OOP based codes:
<?php
$searches = array ('www.example.com', 'oops.org', 'kornet.net', 'yahoo.com');
try {
$g = new GeoIP (GEOIP_MEMORY_CACHE|GEOIP_CHECK_CACHE);
if ( GeoIP_db_avail (GEOIP_CITY_EDITION_REV0) )
$gc = new GeoIP (GEOIP_CITY_EDITION_REV0, GEOIP_INDEX_CACHE|GEOIP_CHECK_CACHE);
if ( GeoIP_db_avail (GEOIP_ISP_EDITION) )
$gi = new GeoIP (GEOIP_ISP_EDITION, GEOIP_INDEX_CACHE|GEOIP_CHECK_CACHE);
#echo "TYPE: " . $g->database_info () ."\n";
foreach ( $searches as $v ) {
$r = $g->id_by_name ($v);
print_r ($r);
if ( GeoIP_db_avail (GEOIP_CITY_EDITION_REV0) ) {
$rc = $gc->record_by_name ($v);
print_r ($rc);
}
if ( GeoIP_db_avail (GEOIP_ISP_EDITION) ) {
$ri = $gi->org_by_name ($v);
echo "ISP NAME: $ri\n";
}
#echo "### " . $g->country_code_by_name ($v) . "\n";
#echo "### " . $g->country_name_by_name ($v) . "\n";
}
} catch ( GeoIPException $e ) {
fprintf (STDERR, "%s\n", $e->getMessage ());
$err = preg_split ('/\r?\n/', $e->getTraceAsString ());
print_r ($err);
}
?>
Reference:
Dependencies:
Sub Packages:
None
Releated Packages:
None
Last updated