已试用1、 IServiceProvider provider = (IServiceProvider)HttpContext.Current;
HttpWorkerRequest request = (HttpWorkerRequest)provider.GetService(typeof(HttpWorkerRequest));
string port=request.GetRemotePort().ToString();
2、string port=Request.ServerVariables["REMOTE_PORT"].ToString();
在本地IIS 访问可以获取到端口,发布在服务器上就不行了,获取都是0;
请高手们帮忙!
HttpContext.Current.Request.Url.Port; 是获取请求的服务器的端口,不是客户端的端口;
IP地址获取现在是没有问题;访问经过4层交换机后在到目标服务器,这样是不是没有办法获取到端口?
获取端口 HttpContext.Current.Request.Url.Port
获取IP
private string getIp() { // 穿过代理服务器取远程用户真实IP地址 string Ip = string.Empty; if (Request.ServerVariables["HTTP_VIA"] != null) { if (Request.ServerVariables["HTTP_X_FORWARDED_FOR"] == null) { if (Request.ServerVariables["HTTP_CLIENT_IP"] != null) Ip = Request.ServerVariables["HTTP_CLIENT_IP"].ToString(); else if (Request.ServerVariables["REMOTE_ADDR"] != null) Ip = Request.ServerVariables["REMOTE_ADDR"].ToString(); else Ip = "202.96.134.133"; } else Ip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString(); } else if (Request.ServerVariables["REMOTE_ADDR"] != null) { Ip = Request.ServerVariables["REMOTE_ADDR"].ToString(); } else { Ip = "202.96.134.133"; } return Ip; }
服务器上面是不是设置了权限
Request.UserHostAddress
Request.ServerVariables["SERVER_PORT"]服务器接受请求的端口。
目前都是代理的应该很难获取到真正的ip吧,路由从启一下ip又变了