读书人

WebProxy对于ip138这样的网站为什么没

发布时间: 2013-11-08 17:52:14 作者: rapoo

WebProxy对于ip138这样的网站为什么没有效果?


HttpWebRequest request = (HttpWebRequest)WebRequest.CreateDefault(new Uri("http://www.ip138.com"));
WebProxy wp = new WebProxy("60.235.27.60:80", true);
request.Proxy = wp;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream sResponse = response.GetResponseStream();
StreamReader srResponse = new StreamReader(sResponse, Encoding.GetEncoding("GB2312"));
string strContent = srResponse.ReadToEnd();
srResponse.Close();
FileStream fs = new FileStream(@"D:\test.html", FileMode.Create);
StreamWriter sw = new StreamWriter(fs, Encoding.UTF8);
sw.Write(strContent);
sw.Close();
fs.Close();

上面这个内容,如果平常的网页使用获取remoteaddr的方式获取客户端IP的话,能够看到IP已经是代理的IP了。
但是访问ip138网站的时候,从获取到的源文件看,里面显示的IP还是我真实的公网IP,这个是为什么呢。
[解决办法]
ip138会判断,如果代理服务器通过x-forward-for字段附加了原始用户的ip,返回原始ip,否则返回remoteaddr。
[解决办法]
HttpWebRequest request = (HttpWebRequest)WebRequest.CreateDefault(new Uri("http://iframe.ip138.com/ic.asp"));
这才是实际显ip的页面

*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/

读书人网 >C#

热点推荐