这是转载的,也不想去检查性能,对于这些成熟的代码,发在这里完全是懒,仅此而已!
1、获取客户端IP
- /// <summary>
- /// 获取客户端Ip
- /// </summary>
- /// <returns></returns>
- public String GetClientIp()
- {
- String clientIP = "";
- if (System.Web.HttpContext.Current != null)
- {
- clientIP = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
- if (string.IsNullOrEmpty(clientIP) || (clientIP.ToLower() == "unknown"))
- {
- clientIP = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_REAL_IP"];
- if (string.IsNullOrEmpty(clientIP))
- {
- clientIP = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
- }
- }
- else
- {
- clientIP = clientIP.Split(',')[0];
- }
- }
- return clientIP;
- }
2、服务器端获取客户端请求IP和客户端机器名称
- /// <summary>
- /// 服务器端获取客户端请求IP和客户端机器名称
- /// </summary>
- public static void GetClientInfo()
- {
- OperationContext context = OperationContext.Current;
- MessageProperties messageProperties = context.IncomingMessageProperties;
- RemoteEndpointMessageProperty endpointProperty = messageProperties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
- HttpRequestMessageProperty requestProperty = messageProperties[HttpRequestMessageProperty.Name] as HttpRequestMessageProperty;
- string clientIp = !string.IsNullOrEmpty(requestProperty.Headers["X-Real-IP"]) ? requestProperty.Headers["X-Real-IP"] : endpointProperty.Address;
- string clientName = Environment.MachineName;
- Console.WriteLine("ClientIp: " + clientIp + "clientName:" + clientName);
- }