web-dev-qa-db-ja.com

ASP.NETを使用して訪問者の場所(国、州、都市)を取得する方法

これをASP.NETに実装したいと思います。残念ながら、どうすればいいのかわかりません。

15
vzagkid

ここでそれがasp.netでどのように行われるか

Request.ServerVariables("REMOTE_ADDR")

ここで場所ごとにIPアドレスデータベースのコピーを取得します

http://www.maxmind.com/

11
Michael B.

使ってみませんか Google Analytics ?あなたはあなたが必要とする以上のものを手に入れるでしょう。または、クライアントのIPを取得し、 ip2location などのサービスを使用して場所を取得することもできます。

この同様の質問も確認してください。 asp.netページでクライアントの場所を検索します。

5
Shoban

IP-to-locationサービスを提供する無料のWebサービスがいくつかあります。例えば:

http://freegeoip.net/
http://www.hostip.info/
http://ipinfodb.com/ip_location_api.php

5
user489998

を使用して

string userHost = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (String.IsNullOrEmpty(userHost) || 
    String.Compare(userHost, "unknown", true) == 0)
{
    userHost = Request.UserHostAddress;
}

ユーザーのIPアドレスを取得します。このIPアドレスに基づいて、いくつかの webservice を呼び出すことにより、訪問者の場所の詳細を見つけることができます。

4
anishMarokey

まず、Request.ServerVariables( "REMOTE_ADDR")を使用して訪問者のIPアドレスを取得します。訪問者がプロキシサーバーを使用している可能性があることに注意してください。その場合、IPアドレスは実際のIPアドレスではない可能性があります。プロキシの場合、Request.ServerVariables( "HTTP_X_FORWARDED_FOR")に値が含まれているかどうかを確認できます。プロキシサーバーが匿名プロキシサーバーでない場合、これが実際のIPアドレスになります。

次に、Webサービスを使用するか、独自のデータベースからデータをクエリするかの2つのオプションがあります。いずれにせよ、訪問者の国、州、都市のIPアドレスと一致するデータが必要になります。

2
user270331

IPAddressExtensions は、IPが配置されている国だけが必要な場合は、無料のcodeplexクラスライブラリです。

2
Pure.Krome

クライアントIPを取得し、IPから地理的位置へのマッピングサービスを使用してIPの場所を見つけます。

0
Umesh

これは私が使用したものです:

<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>
0
Joe Ratzer