【斑马资讯 教程】经过我们加速后,WEB服务器收到的HTTP请求头里,会多一个名为“X-Forwarded-For”的字段,里面记录了客户的真实IP,如果客户同时还使用了多级代理,则各级代理以及真实IP以逗号分开。
WEB服务器端的脚本应该在取客户IP的时候判断这个字段,如果存在则从中析出客户真实IP,否则才从REMOTE_ADDR中取。
下面是一段C#的代码示例,可以做为参考:
public class ClientIPParser {
/// <summary>
/// 取客户端的来源IP和透明代理IP列表
/// </summary>
/// <param name="listProxy">返回透明代理IP列表(若没使用透明代理则返回空列表)</param>
/// <returns>返回来源IP(从哪个IP与Web服务器连接的)</returns>
public static string Execute(out string[] listProxy) {
string proxyAddr =
HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (null == proxyAddr) {
listProxy = null;
} else {
listProxy = proxyAddr.Split(',');
}
return HttpContext.Current.Request.UserHostAddress;
}
}; |