<script type="application/javascript">
function getip(json){
alert(json.ip); // alerts the ip address
}
</script>
<script type="application/javascript" src="http://jsonip.appspot.com/?callback=getip"></script>
このコードでユーザーIPを取得できます...
このIPの場所を見つけたい。どうやって?
受信したIPをhttp://www.geoplugin.net/json.gp?ip=<your ip here>&jsoncallback=<suitable javascript function in your source>
などのオンラインジオロケーションサービスに送信し、jsoncallback
で指定した関数を実行するジオソース情報を含むソースを含めることができます。
別の方法として、HTML5の位置情報機能を調べることもできます。実際にデモを見ることができます here 。これの利点は、外部サーバーに要求する必要がないことですが、HTML5をサポートしていないブラウザーでは機能しない場合があります。
MaxMindデータベースで実行される無料のオープンソースコミュニティ実行ジオロケーションIPサービスは、こちらから入手できます。 https://ipstack.com/
例
https://api.ipstack.com/160.39.144.19
制限
1か月あたり10,000クエリ
http://freegeoip.net/ を使用する場合、クライアントの場所のIPアドレスを提供する必要はないことを指摘したいと思います。これらを試してください:
ただし、おそらくクロスオリジンポリシーのために、AJAX呼び出しで情報を取得できません。どうやらシステムへのパブリックアクセスを許可していないようです。
IPアドレスを場所にマップする [〜#〜] api [〜#〜] を使用すると非常に簡単です。スニペットを実行して、入力ボックスでIPの都市と国を取得します。
$('.send').on('click', function(){
$.getJSON('https://ipapi.co/'+$('.ip').val()+'/json', function(data){
$('.city').text(data.city);
$('.country').text(data.country);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="ip" value="8.8.8.8">
<button class="send">Go</button>
<br><br>
<span class="city"></span>,
<span class="country"></span>
上記のコードを達成できなかった場合に備えて、jqueryでそれを使用する簡単な方法を次に示します。
$.getJSON("http://www.geoplugin.net/json.gp?jsoncallback=?",
function (data) {
for (var i in data) {
document.write('data["i"] = ' + i + '<br/>');
}
}
);
より良い方法は、「中間者」(ip)をスキップすることです
jQuery.get("http://ipinfo.io", function(response) {
console.log(response.city);
}, "jsonp");
これにより、[〜#〜] ip [〜#〜]、city、countryなどが得られます。
かなり安価なオプションは ipdata.co APIを使用することです。1日あたり最大1500リクエストまで無料です。
この回答では、「テスト」APIキーを使用していますが、これは非常に限定されており、数回の呼び出しをテストするためだけのものです。 Signup 独自の無料APIキーの場合、開発のために毎日最大1500件のリクエストを受け取ります。
$.get("https://api.ipdata.co?api-key=test", function (response) {
$("#ip").html("IP: " + response.ip);
$("#city").html(response.city + ", " + response.region);
$("#response").html(JSON.stringify(response, null, 4));
}, "jsonp");
<h1><a href="https://ipdata.co">ipdata.co</a> - IP geolocation API</h1>
<div id="ip"></div>
<div id="city"></div>
<pre id="response"></pre>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
次のリンクのいずれかがこれを処理する必要があります。
http://ipinfodb.com/ip_location_api_json.php
これらのリンクには、Javascriptを介してユーザーの位置を取得するためのチュートリアルがあります。ただし、外部データサービスへのAPIを介してそうします。非常にトラフィックの多いサイトがある場合は、自分でデータをホストする(またはプレミアムAPIサービスを取得する)ことをお勧めします。すべてを自分でホストするには、IP Geolocationでデータベースをホストし、ajaxを使用してユーザーの場所をJavascriptにフィードする必要があります。これが必要なアプローチである場合、以下のIP情報の無料データベースを取得できます。
http://www.ipinfodb.com/ip_database.php
この方法では、IPをロケーションに正確にトレースするために、データベースを定期的に更新する必要があることに注意してください。
$.getJSON('//freegeoip.net/json/?callback=?', function(data) {
console.log(JSON.stringify(data, null, 2));
});
このGoogleサービスを使用できます 無料のIPジオロケーションウェブサービス
update
リンクが壊れているので、コメントに@NickSweetingを含む他のリンクをここに配置します。
json形式でデータを取得できます。
ipinfodb を使用できます。apiキーを取得した後、このhttp://api.ipinfodb.com/v2/ip_query.php?key=" + apiKey + "&ip=" + ip + "&output=xml
のような特定のIPに対して場所を照会できます。その後、xml応答から場所を抽出できます
IPアドレスと場所のマッピングを含むデータベースが必要です。または、多くのオンラインツールを使用してこれを実現できます。たとえば、 http://www.ipligence.com/geolocation
Googleは、キーワード「IPロケーション」の下に多くの結果を返します