ウェブサイトに適切なコンテンツの場所を提供したい場合、IPまたはヘッダー情報を使用して訪問者の大まかな場所を見つけるためにどのような方法を使用できますか?
ウェブサイトに適切なコンテンツの場所を提供したい場合、IPまたはヘッダー情報を使用して訪問者の大まかな場所を見つけるためにどのような方法を使用できますか?
回答:
まず、これらのサービスの精度が低いこと、そして常に低いことを知っておく必要があります。
MaxMind Geolite市は無料です。それが十分でない場合は、明らかに、より正確な有料版にアップグレードできます。私はそれを使用したことがないので、有料版の品質について話すことはできません。
SQLが気に入ったら、CSVバージョンをダウンロードしてください。選択したデータベースにロードし、クエリします。
より高速でスペース効率の高いオプションは、同じデータベースのファイルバイナリblobバージョンをダウンロードし、同じWebサイトから言語固有のAPIを使用してクエリすることです。
あるいは、ipinfodb.comが有用であることがわかりました。クエリは単純なHTTP GETによるものです。たとえば、stackoverflow.comをジオロケーションするには、次を試してください。
http://ipinfodb.com/ip_query.php?timezone=false&ip=69.59.196.211
これにより、緯度と経度を含むXMLファイルが返されます。
<Response>
<Ip>69.59.196.211</Ip>
<Status>OK</Status>
<CountryCode>US</CountryCode>
<CountryName>United States</CountryName>
<RegionCode>41</RegionCode>
<RegionName>Oregon</RegionName>
<City>Corvallis</City>
<ZipPostalCode>97333</ZipPostalCode>
<Latitude>44.4698</Latitude>
<Longitude>-123.343</Longitude>
</Response>
IPから推測できる場所はあまり信頼性が高くありません(つまり、動作することもあります)。
信頼できる場所が必要な場合は、HTML5の一部である位置情報APIを検討してください。ただし、すべてのWebブラウザーが(まだ)サポートしているわけではないことに注意してください。
モバイルサポートに焦点を当てたオプションは、ほとんどのデスクトップブラウザー(私の経験ではIEを除く)でもうまく機能しますが、Seanが言及したHTML5 GeoLocation APIをラップするGeo-Location-Javascriptパッケージです。モバイルブラウザーのサポートはHTML5 APIに対してかなり貧弱であることがわかりました(ただし、まだドラフトであるため、驚くことではありません)。そのため、このパッケージを使用しました。
moblieデバイスの結果は、セルおよびWiFi接続(デバイスに搭載されている場合はGPS)で非常に良好です。デスクトップブラウザは、他のサービスに匹敵するかなり粗い位置を報告します。
このURLを使用してIPアドレスを渡すことができます。 http://api.hostip.info/get_html.php?ip=84.32.32.44
Quova http://www.quova.com/にもサービスがあります。昨日GeoLocoで彼らに話しました。彼らによると(したがって、一粒の塩を使って)、彼らはMaxMindより国際的にはるかに優れていると言います。北米ではほぼ同等です。
携帯電話の場合、IPはおそらくオペレーターがインターネットへのゲートウェイを持っている場所にマップされることに注意してください。携帯電話をターゲットにしている場合は、http://www.loc-aid.com/を使用して試すこともできます。
Googleアナリティクスは、訪問者の位置に関する基本的な地図と統計を提供します。もちろん、この情報をGoogleと共有する必要があります...
ipinfodb.comは良いですが、現在オフラインです:(
私はそれを私のAPIに使用しています。私の天気にはいいが、昨日からオフラインになっていたのは今は知らない。
地理的な場所に基づいてコンテンツや広告を提供したい場合、デバイスから場所データを取得することはできません。携帯電話を使用している場合でも、GPSとWi-Fiがオフになっている可能性が高く、場所を共有するために同意する必要があります。
「ねえ、あなたの場所を私と共有して、あなたの地理的な場所に最も関連があると思うコンテンツや広告を提供できますか?」応答:「いいえ!そこにある最高のコンテンツと広告をください」
許可を求めずに場所を見つける唯一の方法は、IPアドレスを使用することです。独自のサーバーにデータベースをインストールしてクエリを実行し、IPアドレスの場所を見つけるか、クエリを実行して結果を取得する必要がある外部APIを使用できます。私はipgp geolocation apiを使用しており、うまく機能しています。(http://www.ipgp.net/ip-address-geolocation-api/)