Is there a way to figure out the country name just by looking at an IP address? I mean, do countries have specific ranges of IP addresses? For example, Australia can have IP addresses only in the range of 123.45.56.89 - 231.54.65.98
(just an example)
13 に答える
いいえ、できません。IP アドレスは時々再割り当ておよび再割り当てされるため、IP から場所へのマッピングも時間の経過とともに変化します。
IP アドレスが現在マッピングされている場所を知りたい場合は、MaxMind から GeoLiteなどのジオロケーション データベースをダウンロードするか、 http://ipinfo.io (私自身のサービス)などの API を使用して、あなたの追加の詳細:
$ curl ipinfo.io/8.8.8.8
{
"ip": "8.8.8.8",
"hostname": "google-public-dns-a.google.com",
"loc": "37.385999999999996,-122.0838",
"org": "AS15169 Google Inc.",
"city": "Mountain View",
"region": "California",
"country": "US",
"phone": 650
}
あなたが探しているのは、IP Geolocation データベースまたはサービス プロバイダーだと思います。そこには多くのものがあり、いくつかは無料です(あなたが支払うものを手に入れてください).
これまでこのサービスを使用したことはありませんが、リアルタイムであると主張しています。 https://kickfire.com/kf-api
Abstract API からの別の IP 地理位置情報 API を次に示します - https://www.abstractapi.com/ip-geolocation-api
しかし、IP geo で Google 検索を行うだけで、必要以上の結果が得られます。
IP アドレスは、地理的ターゲティング、つまり訪問者の場所/国によって Web サイトのコンテンツをカスタマイズするために非常に一般的に使用されますが、国と永続的に関連付けられるわけではなく、しばしば再割り当てされます。
目的を達成するには、データベースまたは地理位置情報 API を使用して、IP アドレスを国にマップする最新のルックアップを維持する必要があります。例を次に示します。
> https://ipapi.co/8.8.8.8/country
US
> https://ipapi.co/8.8.8.8/country_name
United States
または、完全な API を使用してIPアドレスの完全な場所を取得することもできます。
https://ipapi.co/8.8.8.8/json
{
"ip": "8.8.8.8",
"city": "Mountain View",
"region": "California",
"region_code": "CA",
"country": "US",
"country_name": "United States",
"continent_code": "NA",
"postal": "94035",
"latitude": 37.386,
"longitude": -122.0838,
"timezone": "America/Los_Angeles",
"utc_offset": "-0800",
"country_calling_code": "+1",
"currency": "USD",
"languages": "en-US,es-US,haw,fr",
"asn": "AS15169",
"org": "Google Inc."
}
それほど簡単ではありません。IP アドレスは国そのものではなく、企業や組織に割り当てられます。
しかし、多分これはあなたを助けることができます: http://www.maxmind.com/app/geolitecountry
はい、 https://lite.ip2location.com/ip-address-ranges-by-countryから国別の IP アドレス範囲をダウンロードできます。
各国には複数の範囲があり、頻繁に変更されていることがわかります。