0

我正在生成运行时<a>链接。要完成链接,我使用以下代码:

string appPath = protocol + System.Web.HttpContext.Current.Request.ServerVariables["HTTP_HOST"] + System.Web.HttpContext.Current.Request.ApplicationPath;.

但是当用户尝试从以下位置打开网站时:http://123.123.123.123/testApp此时我的链接是用http://myservername.com/testApp.

我想要用户输入的地址。

如果用户从链接打开打开http://123.123.123.123/testApp的网站应该是

http://123.123.123.123/testApp/Default.aspx

如果用户从链接打开网站http://myservername.com/testApp应该是

http://myservername.com/testApp/Default.aspx

4

3 回答 3

0

使用REMOTE_ADDR服务器变量

string appPath = protocol + 
System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"] + 
System.Web.HttpContext.Current.Request.ApplicationPath;
于 2013-01-23T06:29:18.427 回答
0

使用此函数获取IPAddress用户的。
但是有可能您可能无法获得实际 IP。有很多类似的问题firewall。这可能会暴露ip给网络上的所有计算机。

    public static string GetMachineName(HttpRequest moRequest)
    {
        return moRequest.ServerVariables["HTTP_X_FORWARDED_FOR"] != null ||
               moRequest.ServerVariables["HTTP_CLIENT_IP"] != null
                   ? moRequest.ServerVariables["HTTP_X_FORWARDED_FOR"]
                   : moRequest.ServerVariables["REMOTE_ADDR"];
    }
于 2013-01-23T07:38:28.430 回答
0

HTTP_HOST 或 SERVER_NAME之一应该为您提供有关用户键入什么内容以访问您的站点的信息。使用 Http 调试器检查浏览器在 IP 地址的情况下实际发送的内容可能是个好主意,以确保检查正确的值。

   `HttpContext.Current.Request.ServerVariables("HTTP_HOST");` 
于 2013-01-23T06:41:35.860 回答