Uri url = new Uri( "http://www.baidu.com ");
WebRequest requestPage = WebRequest.Create(url);//发送absoluteUri创建请求对象
//requestPage.Timeout = 1000;
WebResponse reponsePage = requestPage.GetResponse();
Stream newsStream = reponsePage.GetResponseStream();//读取页面流
Encoding encode = System.Text.Encoding.GetEncoding( "gb2312 ");
StreamReader reader = new StreamReader(newsStream, encode);//读取获得内容流
string boardStream = reader.ReadToEnd();//将内容流转换为文本并存入变量BoardStream,即为所需要的数据流
为什么经常读取到的是下面的页面?这好像是电信的一个页面.其中zhsbwensen是我上网的账号,为什么会这样呢?我该怎么做?
<html>
<head>
<meta http-equiv= "pragma " content= "no-cache "/>
<meta http-equiv= "Cache-Control " content= "no-store,no-cache,must-revalidate,post-check=0,pre-check=0,max-age=0 "/>
<meta http-equiv= "expires " content= "-1 "/>
<meta http-equiv= "refresh " content= "2 "/>
</head>
<body>
<iframe src= "about:blank " width= "0 " height= "0 " frameborder= "0 " style= "display:none "> </iframe>
<script language= "javascript ">
window.frames[0].location = "http://219.131.193.229/update/step1.aspx?p= " +
"zhsbwensen ¦ " +
Math.floor((new Date()).getTime()/1000) + " ¦ " +
navigator.appMinorVersion + " ¦ " +
screen.availHeight + " ¦ " +
screen.availWidth + " ¦ " +
screen.colorDepth + " ¦ " +
screen.height + " ¦ " +
screen.width;
</script>
</body>
</html>
6 个解决方案
你用个timer 2秒一次2秒一次的刷,看看会不会,应该是电信的问题
楼主用的是adsl?楼主的问题我也遇到过,我在家用的是电信的adsl,获取网页源代码时不时就出现一个讨厌的框架,害得我还得自己写代码转向。原因是电信在监视你访问哪些网站,这太侵犯隐私了!
3楼的,你说对了,我的就是电信的adsl,怎么转向取得正确地址的内容啊
从楼主发的代码来看,你访问的是www.baidu.com,但是返回的并不是百度首页的源代码,而是一个包含了Iframe的页面。分析此html代码发现,它每隔2秒把你的浏览器信息及显示器信息发送到219.131.193.229,这个ip收集你的信息到底是干什么的呢?如果它是搞统计,那也应该再加个Iframe把百度的主页显示出来啊?不然浏览器显示此html将是一片空白,且不说这个。我更关注它是怎么替换成这个html的,访问网站一般都要先把域名解析成IP,然后再通过三次握手建立tcp连接,这个连接一旦建立就可以互相通信了。看看楼主的情况,你访问www.baidu.com其实并没有和百度建立tcp连接,而是和另外一个主机,那可以推测是在域名解析的时候有问题。楼主可以用ipconfig/all命令看看自己的DNS服务器是多少?再多ping www.baidu.com几次看看是不是每次返回的ip相同?是不是你的DNS不稳定,你换个DNS试试?