IPアドレスから都市と国を判別するために使用できる信頼性の高いAPIが必要です。
Googleで検索すると、http://ipinfodb.com/ip_location_api.phpになりました。完璧に見えますが、私の唯一の懸念はこのサービスの信頼性です。グーグルはこのようなものを持っていますか?
IPから場所を特定するのに役立つ無料または有料のAPIを探しています。
IPアドレスから都市と国を判別するために使用できる信頼性の高いAPIが必要です。
Googleで検索すると、http://ipinfodb.com/ip_location_api.phpになりました。完璧に見えますが、私の唯一の懸念はこのサービスの信頼性です。グーグルはこのようなものを持っていますか?
IPから場所を特定するのに役立つ無料または有料のAPIを探しています。
MaxMindには、ip2countryおよびip2cityデータベースのライトバージョンがあります:http: //www.maxmind.com/app/geolitecity
http://www.maxmind.com/app/geolitecountry
データベースを自分でホストしてもかまわない場合は、無料です。有料サービスはより正確です。
また、クエリ用のWebサービスも提供していますが、無料ではありません:http: //www.maxmind.com/app/web_services#country
geopluginの使用を検討してください。これは、1行のPHPコードからほとんどの情報を提供しますが、すべての要求に対してgeoplugin.comサーバーへの接続が必要です(無料です)。
例:
Json:http ://www.geoplugin.net/json.gp?ip=74.125.236.174
{
geoplugin_request: "74.125.236.174",
geoplugin_status: 200,
geoplugin_city: "Mountain View",
geoplugin_region: "CA",
geoplugin_areaCode: "650",
geoplugin_dmaCode: "807",
geoplugin_countryCode: "US",
geoplugin_countryName: "United States",
geoplugin_continentCode: "NA",
geoplugin_latitude: "37.419201",
geoplugin_longitude: "-122.057404",
geoplugin_regionCode: "CA",
geoplugin_regionName: "California",
geoplugin_currencyCode: "USD",
geoplugin_currencySymbol: "$",
geoplugin_currencySymbol_UTF8: "$",
geoplugin_currencyConverter: 1
}
Xml:http ://www.geoplugin.net/xml.gp?ip=74.125.236.174
<geoPlugin>
<script/>
<geoplugin_request>74.125.236.174</geoplugin_request>
<geoplugin_status>200</geoplugin_status>
<geoplugin_city>Mountain View</geoplugin_city>
<geoplugin_region>CA</geoplugin_region>
<geoplugin_areaCode>650</geoplugin_areaCode>
<geoplugin_dmaCode>807</geoplugin_dmaCode>
<geoplugin_countryCode>US</geoplugin_countryCode>
<geoplugin_countryName>United States</geoplugin_countryName>
<geoplugin_continentCode>NA</geoplugin_continentCode>
<geoplugin_latitude>37.419201</geoplugin_latitude>
<geoplugin_longitude>-122.057404</geoplugin_longitude>
<geoplugin_regionCode>CA</geoplugin_regionCode>
<geoplugin_regionName>California</geoplugin_regionName>
<geoplugin_currencyCode>USD</geoplugin_currencyCode>
<geoplugin_currencySymbol>$</geoplugin_currencySymbol>
<geoplugin_currencySymbol_UTF8>$</geoplugin_currencySymbol_UTF8>
<geoplugin_currencyConverter>1</geoplugin_currencyConverter>
</geoPlugin>
別のオプション
Googleには無料のサービスがありますhttp://briancray.com/2009/05/29/find-web-visitors-location-javascript-google-api/
私はhttp://www.hostip.info/を使用しましたが、それは本当に良いと思いました。
すべてのIPジオロケーションは、ISPから送信されたレコードに依存します。多くのISPは、別の都市や国にある可能性のあるサブネットの物理的な場所ではなく、オフィスの場所を送信するため、これは完全に信頼できるものではありません。
ある意味では、ユーザーの場所を確実に知ることはできません。他の回答が提供するヒントを使用すると、IPの地理的位置がわかりますが、米国ニューヨークのIPアドレスが、英国ロンドンへの出張中の誰かからVPN経由でアクセスされていないことを知る方法はありません。誰かがTorのような匿名化サービスを使用しているかどうか。
グーグルはこのようなものを持っていますか?
いいえ、Googleはこれに類似したサービスを提供していません。(それがそれを提供すると主張するここでの答えはどこにも通じないことに注意してください)。
IPからユーザーの場所を特定するのに役立つその他の無料または有料のAPI
まず第一に、そのようなサービスの信頼性について話すのは難しいです。ほとんどのサービスはデータの取得をISPに依存しており、ISPが常に信頼できるデータを提供するとは限りません。さらに、基本的にユーザーの場所(IPが属する場所ではなく)に関心があると想定しているため、ユーザーはVPN、Tor、またはその他の匿名ユーザーを介して自分の場所を非表示にすることができます。
いくつかのコメントで、信頼できるとはAPIプロバイダーの稼働時間を意味することを私は見ました。もしそうなら、私がMaxMindのGeoIP2をお勧めするよりも。まず第一に、私はこのサイトを長い間見てきました、それらはかなり頻繁に更新されます(最終更新-2014年4月1日)、さらにあなたがダウンタイムをとても恐れているなら-あなたは彼らのデータベースをダウンロードしてそれらに頼らないことができます(また彼らは無料です)。
私が実際に気に入っているもう1つのサービスは、あまり知られておらず、オープンソースです(MaxMindからのデータに部分的に依存しています)。数回しか使用していないので、稼働時間については言えませんが、彼らのAPIは本当に気に入っています。それはとても単純なので、もっと単純なものを思い付くのは難しいです:
http://www.telize.com/geoip/46.19.37.108
またはこのように
http://www.telize.com/geoip/2a02:2770::21a:4aff:feb3:2ee
あなたに与える
{
"country":"Netherlands",
"dma_code":"0",
"timezone":"Europe\/Amsterdam",
"area_code":"0",
"ip":"46.19.37.108",
"asn":"AS196752",
"continent_code":"EU",
"isp":"Tilaa V.O.F.",
"longitude":5.75,
"latitude":52.5,
"country_code":"NL",
"country_code3":"NLD"
}
これらの2つのサービスは、訪問者の通常の情報を取得するのに十分だと思います。しかし、重要なことが1つあります。ユーザーがどこから来たのかを本当に知る必要がある場合は、html5ジオロケーションでユーザーに質問してみませんか?これは良い例ですが、さらに先に進むことができます(場所が正しいかどうかを尋ね、変更できるようにします)。あなたの場合、国/都市だけが必要ですが、他の人がそれを必要とするかもしれません。
PS 2015年11月。telize.comの使用にはお金がかかるので、現在無料の別のサービスを見つけました。
https://freegeoip.net/json/45.79.8.237
https://freegeoip.net/json/2600:3c00::f03c:91ff:fe98:c0f5