MySQLサーバーを使用している場合は、無料で使用およびインストールできるIPデータベースがあります。次に、$_SERVER['REMOTE_ADDR']
を実行してデータベースデータに対して実行します。
すなわち(いくつかの任意のデータベースに基づく)
<?php
$result = mysql_query("SELECT *
FROM ips
WHERE ip = {$_SERVER['REMOTE_ADDR']}
LIMIT 1") or die(mysql_error());
$row = mysql_fetch_assoc($result);
$city = $row['city'];
$state = $row['state'];
$country = $row['country'];
?>
一部のデータベース(または単にグーグルで検索):http ://www.ipinfodb.com/ip_database.php
編集
他のAPIからJSON/XMLリクエストを実行し、データを解析することもできます。
すなわち(再びipinfodb.comを使用)
$doc->loadXML(file_get_contents("http://api.ipinfodb.com/v2/ip_query.php?key=your_key&ip=" . $_SERVER['REMOTE_ADDR'] . "&timezone=false"));
$country = $doc->getElementsByTagName('CountryName')->item(0)->nodeValue;