0

ウェブサイトの訪問者の地理的な場所を取得してデータベースに保存したいのですが、すでに IP アドレスを取得しています。

私はasp.net 3.0を使用しています

protected void Page_Load( object sender, EventArgs e)
    {
        // Track Visitors
        string ipAddress = IpAddress();
        string hostName = Dns .GetHostByAddres(ipAddress).HostName;
        StreamWriter wrtr = new StreamWriter (Server.MapPath( "visitors.log" ), true );
        wrtr.WriteLine( DateTime .Now.ToString() + " | " + ipAddress + " | " + hostName + " | " + Request.Url.ToString());
        wrtr.Close();
    }

    private string IpAddress()
    {
        string strIpAddress;
        strIpAddress = Request.ServerVariables[ "HTTP_X_FORWARDED_FOR" ];
        if (strIpAddress == null )
            strIpAddress = Request.ServerVariables[ "REMOTE_ADDR" ];
        return strIpAddress;
    }
4

1 に答える 1

1

そのための組み込みの方法はありません。このようなマッピングを提供するWebサービスがインターネット上にあります。このようなデータベース「GeoIPデータベース」は、ローカルでの使用も可能です。

ただし、更新されたWebサービスにサブスクライブし、それを使用して場所を取得するのが最善です。 ここでは、 GoogleのClientLocationAPIが役立ちます。

最近のブラウザの中には、ユーザーの場所を送信するものがあります。あなたはそれを使うことができます。しかし、これはすべてのブラウザでフォローされているわけではないため、信頼できるものではありません。w3.orgが提供するGeoLocationAPI確認できます。

于 2012-06-09T06:32:31.230 に答える