Asp.netのIPアドレスから経度と緯度の値を取得することは可能ですか?可能であれば、これを入手する方法を教えてください。
MaxMind Geolite city は無料です。それが十分でない場合は、明らかに、より正確な有料版にアップグレードできます。私は一度も使ったことがないので、有料版の品質について話すことはできません。
SQLが気に入ったら、 CSVバージョン をダウンロードしてください。選択したデータベースにロードし、クエリします。
より高速でスペース効率の高いオプションは、同じデータベースの ファイルバイナリblobバージョンをダウンロードする を使用し、 C#クラス を使用してクエリすることです。
あるいは、 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>
一部のVB.NETサンプルコードは http://forum.ipinfodb.com/viewtopic.php?f=7&t=269 で入手できます。
IPInfoDB を試してください。これは、私の知る限り無料です。
ダウンロード可能なデータベースを提供しますが、最も簡単な解決策はXML APIのようです。提供されている例はphp向けですが、ASP.Netでも同様にアクセスできます。
http://www.iptolatlng.com/ は、作業中のこのアプリに必要な生のJSON出力を提供するので、私にとってはうまくいきます。
JavaScriptクライアントを介してロケーションにアクセスしようとしている場合、HTML 5で利用可能なジオロケーションAPIは非常に役立ちます。
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(geoLocationSuccess, geoLocationError);
}
geoLocationSuccessとgeoLocationErrorは、それぞれ成功とエラーのコールバックです。
function geoLocationSuccess(position){
alert('lat: ' + position.coords.latitude + ', lon: ' + position.coords.longitude);
}
別の方法もあります: http://www.hostip.info/index.html
それはAPIを持っています、あなたが見てみると面白いかもしれません。