function CID_get_country($ip) { require_once dirname(__FILE__) . '/ip2c/ip2c.php'; if (isset($GLOBALS['ip2c'])) { global $ip2c; } else { $ip2c = new ip2country(dirname(__FILE__) . '/ip2c/ip-to-country.bin'); $GLOBALS['ip2c'] = $ip2c; } return $ip2c->get_country($ip); }
function getIpAddrCountry($ipAddress) { $ip2c = new ip2country("include/ip-to-country.bin"); $res = $ip2c->get_country($ipAddress); if ($res == false) { return "Unknown"; } else { $country = $res['name']; if ($country == "") { $country = "Unknown"; } return $country; } }
function mystique_get_flag($ip) { require_once 'ip2c/ip2c.php'; if (isset($GLOBALS['ip2c'])) { global $ip2c; } else { $ip2c = new ip2country(TEMPLATEPATH . '/extensions/ip2country/ip2c/ip-to-country.bin'); $GLOBALS['ip2c'] = $ip2c; } $country = $ip2c->get_country($ip); if ($country) { $code = strtolower($country['id2']); $name = ucwords(strtolower($country['name'])); return array('code' => $code, 'name' => $name); } else { return false; } }
function read3cCode() { fread($this->m_file, 1); $d = fread($this->m_file, 3); return $d != ' ' ? $d : ''; } function readCountryKey() { return fread($this->m_file, 2); } function readInt() { $a = unpack('N', fread($this->m_file, 4)); return $a[1]; } function seek($offset) { fseek($this->m_file, $offset); } } $ip2c = new ip2country(); if (empty($_GET['ip'])) { $_GET['ip'] = $_SERVER["REMOTE_ADDR"]; } $res = $ip2c->get_country($_GET['ip']); if ($res == false) { $c = "unknown"; } else { $c = strtolower($res['id2']); } header("Location: flags/{$c}.png");
<?php require_once 'ip2c.php'; set_time_limit(0); $ip2c = new ip2country(); $ips = array(); $len = 100000; echo "Generating {$len} random IP addresses...."; flush(); for ($i = 0; $i < $len; $i++) { $ips[$i] = mt_rand(0, 255) . "." . mt_rand(0, 255) . "." . mt_rand(0, 255) . "." . mt_rand(0, 255); } echo "Done<br/>Resolving addresses:<br/>"; $now = microtime_float(); $progress = $len / 20; for ($i = 0; $i < $len; $i++) { if ($i % $progress == 0) { echo $i . " done<br/>"; flush(); } $ip2c->get_country($ips[$i]); } echo "now " . microtime_float() . "<br/>"; echo "before " . $now . "<br/>"; $t = microtime_float() - $now; echo "Took " . $t . " for {$len} searches (" . $len / $t . " searches/sec)"; function microtime_float() { list($usec, $sec) = explode(" ", microtime()); return (double) $usec + (double) $sec; }
<?php error_reporting(E_ALL | (defined('E_STRICT') ? E_STRICT : 0)); require_once 'ip2c.php'; $ip = htmlentities(isset($_GET['ip']) ? $_GET['ip'] : $_SERVER['REMOTE_ADDR']); $ip2c = new ip2country("../ip-to-country.bin"); var_dump($ip2c->find_country_impl(16981, 0, $ip2c->m_numCountries)); return; $res = $ip2c->get_country($ip); if ($res == false) { echo "{$ip} => not found"; } else { $o2c = $res['id2']; $o3c = $res['id3']; $oname = $res['name']; echo "{$ip} => {$o2c} {$o3c} {$oname}"; }