これをASP.NETに実装したいと思います。残念ながら、どうすればいいのかわかりません。
ここでそれがasp.netでどのように行われるか
Request.ServerVariables("REMOTE_ADDR")
ここで場所ごとにIPアドレスデータベースのコピーを取得します
使ってみませんか Google Analytics ?あなたはあなたが必要とする以上のものを手に入れるでしょう。または、クライアントのIPを取得し、 ip2location などのサービスを使用して場所を取得することもできます。
この同様の質問も確認してください。 asp.netページでクライアントの場所を検索します。
IP-to-locationサービスを提供する無料のWebサービスがいくつかあります。例えば:
http://freegeoip.net/
http://www.hostip.info/
http://ipinfodb.com/ip_location_api.php
を使用して
string userHost = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (String.IsNullOrEmpty(userHost) ||
String.Compare(userHost, "unknown", true) == 0)
{
userHost = Request.UserHostAddress;
}
ユーザーのIPアドレスを取得します。このIPアドレスに基づいて、いくつかの webservice を呼び出すことにより、訪問者の場所の詳細を見つけることができます。
まず、Request.ServerVariables( "REMOTE_ADDR")を使用して訪問者のIPアドレスを取得します。訪問者がプロキシサーバーを使用している可能性があることに注意してください。その場合、IPアドレスは実際のIPアドレスではない可能性があります。プロキシの場合、Request.ServerVariables( "HTTP_X_FORWARDED_FOR")に値が含まれているかどうかを確認できます。プロキシサーバーが匿名プロキシサーバーでない場合、これが実際のIPアドレスになります。
次に、Webサービスを使用するか、独自のデータベースからデータをクエリするかの2つのオプションがあります。いずれにせよ、訪問者の国、州、都市のIPアドレスと一致するデータが必要になります。
IPAddressExtensions は、IPが配置されている国だけが必要な場合は、無料のcodeplexクラスライブラリです。
クライアントIPを取得し、IPから地理的位置へのマッピングサービスを使用してIPの場所を見つけます。
これは私が使用したものです:
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
'url': 'http://www.freegeoip.net/json/@(HttpContext.Current.Request.UserHostAddress)',
'type': 'GET',
'success': function(data) {
// for example
if (data.country_code === "GB") {
... further logic here
}
}
});
});
</script>