[VB6]自動登陸網路站點詳解(一):得到參數名

  • 3369
  • 0

摘要:[VB6]自動登陸網路站點詳解(一):得到參數名

自動登陸站點有一個關鍵的地方就在於參數名的正確與否,因為各個WEB伺服器接收的參數名都不可能相同,在程式中倘若參數名使用不正確,會誤以為代碼的錯誤而徒増煩惱,因此首先推薦一個很有用的工具“Visual Sniffer”:它可以攔截通過網路傳輸的TCP/IP/UDP/ICMP等資料包,利用這個工具可以很輕鬆的得到向伺服器發送的相關參數。

以登陸CSDN為例,現在我們先用IE打開“http://www.csdn.net/member/login.aspCSDN的登陸頁面,輸入帳號及密碼,先不要登陸,將Visual Sniffer運行起來,點一下“開始攔截”這個按鈕,再回到登陸頁面,點擊“登陸”,稍等片刻,登陸成功之後在Visual Sniffer上點一下“停止攔截”,現在就可以找一下剛才IE到底向外發送了些什麼東西。(建議在做這些之前將多餘的IE全都關掉,因為倘若其他IE視窗也在發送資料,你將會在Visual Sniffer受到不必要的干擾。)

注意現在在Visual Sniffer的左邊有很多“+”號,這些便是被攔截到的資料,將它們一一展開,此時應注意查看右邊的資料,倘若第一行沒有“POST”這樣的字元,那便迅速換一個“+”號,這已經是最快的找到向CSDN的伺服器發送資料的方法了(我們的登陸是“POST”請求,如果看到的“GET”,那肯定不是)。請看實際的圖片:

 

先對發出去的文件頭稍加說明一下,有幾個不是很重要,因此這裏就不多說了:

Accept:”表示能夠收到的檔格式。

Referer:”表示指向的檔位址。

Accept_Language:”表示接受的語言。

Host:”表示主機名。

圖中的紫線部分合起來便是POST請求發往的位址,紅線所示便是所有伺服器需要接收的參數,四個等號表示共有四個參數用“&”連接起來。順便提一句,你看到的那個CookieASPSESSION……長長的這段就是Session,它是在IE與伺服器請求連接的時候由伺服器發給IE的,現在又被原樣返回了。你可以在Visual Sniffer中其他地方查查,看一下它是什麼時候得到的。由於在程式中,我們使用的是控制項,實際上不需要考慮CookieSession的問題,因為VBInetWebBrowser都封裝的很好,關鍵只是如何正確的使用。

 login_name”、“password”這兩個就是CSDN在登陸時接收的最主要的參數名;此外,還有一個“cookietime”告訴本地Cookie的有效時間,這三個是登陸CSDN時所必須發送的參數。帳號及密碼是一般登陸站點都需要的參數,但有些伺服器會接收三個以上的參數,除了帳號及密碼我們可以把其他的參數統統算作第三參數,中間使用“&”連接即可。另外比較重要的是“Content-Type: application/x-www-form-urlencoded”,這裏告訴伺服器解碼的方式,程式中要是少了這句,什麼都幹不了。

登陸其他論壇、郵箱、社區的時候,都可以通過Visual Sniffer來得到POST的所有重要資訊,而且這也是我推薦給大家的方法,特別是在有些參數不那麼容易從HTML原始檔案中分析的時候。不僅如此,你還可以用這種方法來攔截自己的程式,因為同樣也是HTTP協議,Visual Sniffer也是能夠攔截的。這樣你就可以比較程式與IE登陸時到底有何異同,以達到除錯的目的。