积极答复者
怎么获取请求的客户端端口号

问题
答案
-
查看HttpContext源码,发现HttpWorkerRequest有方法GetRemotePort
搜索本版发现转换代码
IServiceProvider provider = (IServiceProvider)HttpContext.Current;
HttpWorkerRequest request = (HttpWorkerRequest)provider.GetService(typeof(HttpWorkerRequest)); //然后就可以 Response.Write(request.GetRemotePort());
用vs自带的服务器得到的是 SimpleWorkerRequest,端口永远返回0
在IIS7下得到IIS7WorkerRequest是正确的,通过UnsafeIISMethods中的
[DllImport("webengine.dll", CharSet=CharSet.Unicode)] internal static extern int MgdGetRemotePort(IntPtr context);
- 已标记为答案 Mr.Xiao 2012年5月17日 16:08
全部回复
-
winform 的列子
http://www.cnblogs.com/cracker/archive/2012/05/17/2506733.html
asp.net
可以试试
Request.UserAgent
附带ip的获取方式
Request.UserHostAddress
或者
Request.ServerVariables["remote_addr"].ToString();
- 已编辑 chenrensongModerator 2012年5月17日 11:13
-
查看HttpContext源码,发现HttpWorkerRequest有方法GetRemotePort
搜索本版发现转换代码
IServiceProvider provider = (IServiceProvider)HttpContext.Current;
HttpWorkerRequest request = (HttpWorkerRequest)provider.GetService(typeof(HttpWorkerRequest)); //然后就可以 Response.Write(request.GetRemotePort());
用vs自带的服务器得到的是 SimpleWorkerRequest,端口永远返回0
在IIS7下得到IIS7WorkerRequest是正确的,通过UnsafeIISMethods中的
[DllImport("webengine.dll", CharSet=CharSet.Unicode)] internal static extern int MgdGetRemotePort(IntPtr context);
- 已标记为答案 Mr.Xiao 2012年5月17日 16:08