我正在生成运行时<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
答案 0 :(得分:0)
使用REMOTE_ADDR
服务器变量
string appPath = protocol +
System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"] +
System.Web.HttpContext.Current.Request.ApplicationPath;
答案 1 :(得分:0)
HTTP_HOST or SERVER_NAME中的一个应该向您提供有关用户输入的内容的信息。最好使用Http调试器检查浏览器实际发送的IP地址,以确保检查正确的值。
`HttpContext.Current.Request.ServerVariables("HTTP_HOST");`
答案 2 :(得分: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"];
}