<?php教程
if (!isset($_server["http_referer"]))
echo "no referer";
else
echo $_server["http_referer"];
?>
如果直接點擊上面的連結,那麼頁面會顯示referer頁面的連結。
複製代碼 代碼如下:
set http = createobject("msxml2.xmlhttp")
http.open "get","http://www.111cn.net/test/referer.php",false
http.setrequestheader "referer","http://www.111cn.net"
http.send
wscript.echo http.responsetext
但是如果我用vbs調用msxml2.xmlhttp組件訪問這個頁面,返回的卻是no referer。實在匪夷所思,難道My Code寫錯了?
於是google了一下“vbs偽造http referer”,發現搜出來的內容大部分和這篇文章一樣,不用看又是複製粘貼,你抄我的,我抄你的,抄來抄去不知道到底是誰的,而且還是錯的!
那篇文章第一個例子是asp教程的
複製代碼 代碼如下:
dim http
set http=server.createobject("msxml2.xmlhttp")
http.open "get",url,false
http.setrequestheader "referer","http://www.fromdomain.cn/"
http.send()
開始我還以為asp下的vbs和我直接雙擊啟動並執行vbs不一樣,asp下的比較牛逼,可以改referer。為此我還專門裝了iis測試,發現返回的照樣是no referer。後來才看到下面的留言,“原諒我對asp不熟,給不了你什麼協助,自己查點其他資料參考一下吧”,“這我沒怎麼玩asp了,代碼只是參考來的,asp的沒測試過”。
我真的不想罵人,不熟你寫也就算了,起碼測試一下吧,沒有測試過的代碼你也好意思貼上來?後來在千一網路(這個網路貌似不錯)看到一個比較靠譜的答案,referer在asp和ajax中是無法通過設定header來更改的。
怒了,既然xmlhttp組件不行,我用socket來寫總行了吧!(註:不是所有電腦上都註冊了winsock組件)