亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > 在Linux下通過WEB認證方式上網

在Linux下通過WEB認證方式上網

熱門標簽:百度中國地圖標注中心 依蘭縣地圖標注app 公司400電話辦理價格 百度地圖標注開鎖電話 pageadm實現地圖標注 山東企業電銷機器人價格 潮州地圖標注 安陽百應電銷機器人加盟 琿春市地圖標注app

摘要

  通過分析 windoze 下 Web 認證過程,提出在 Linux 中用*腳本*實現通過 Web 認證方式上網的方法

問題由來

  近來,隨著寬帶入戶,越來越多的 ISP 采用 Web 認證這種接入認證技術。Web 認證從用戶的角度看,是指用戶在瀏覽器中通過 Web 頁面輸入用戶名和密碼的認證過程。多數 ISP 號稱無需客戶端軟件,實際情況卻是:Windoze 下用戶可以順利通過 Web 認證上網,但 Linux 用戶卻沒有這么幸運。

分析原因

  什么原因呢?解決問題還需從分析認證頁面入手,下面的分析主要針對我這里的情況。在 Mozilla 中打開認證頁面后,沒有顯示任何內容。仔細分析認證頁面,發現認證頁面采用 JavaScripts 編寫,并且是針對 IE 編制的。IE 并未完全按照標準使用 JavaScripts。IE 對 JavaScripts 做了一些擴充,主要有以下幾項:

  * .cab files for download of binaries;
  * document.all;
  * element.innerHTML;
  ...

  詳情請參閱 http://www.stopbadtherapy.com/standards.shtml

IE 對 JavaScripts 的這些擴充,Mozilla 是不支持的,實際上 Mozilla 對標準 JavaScripts 的支持比 IE 好。所以,這些有 IE 特點的認證頁面 Mozilla 等瀏覽器自然無法通過了。
從用戶瀏覽器的角度看,Web 認證除了通過 Web 頁面輸入用戶名和密碼外,還需要通過 http 協議傳送客戶由 DHCP 獲得的 IP。有些 ISP 在用戶登錄到認證頁面時,由瀏覽器自動下載 .cab 文件,然后執行該文件獲得用戶的 IP,再傳給 Web Server。還有些 ISP 在用戶通過認證后,會在客戶端彈出一個計時窗,定時向 ISP 發送 keep-alive 包。當然,Web 認證是一個比較新的方式,還沒有形成標準,所以各提供商的方法也不盡相同,所謂各村有各村的高招,你那里的方法就很有可能與我的不同,但道理應該是一樣的。根據以上的分析,可以看出 Linux 用戶自然不可能用非 IE 兼容的瀏覽器直接通過登錄 Web 認證界面上網啦。

  解決方法

  好了,問題就在這些 Web 頁面使用 IE 方言的 JavaScripts 上,有幾種解決方法:

  1。使用 Linux 下 IE 兼容的瀏覽器,有嗎?誰知道請告訴我。
  2。使用 wine + IE 的方法,有成功的嗎?大家共同分享。
  3。如果將這些鳥語改為普通話,我們就可以用 Mozilla 等非 IE 瀏覽器通過 Web 認證方式上網了。
  4。要求 ISP 提供支持 W3C 標準的認證頁面。
  5。分析 web 認證的原理,編寫認證程序。

  最理想的方法四,可是我等不急,也不一定能等到,也許你比我幸運。我采取第三種方法,對于方法三,你一定會問:認證頁面在 Web Server 上,我無權修改,行不通。確實如此,這里有個變通的辦法:下載認證頁面,按照 JavaScripts 標準修改并保存在本地,每次上網前用本地經過修改的 Web 認證頁面而非 Web Server 的認證頁面就可以了。具體修改方法,參照 http://www.stopbadtherapy.com/standards.shtml 中的對照表,找出認證頁面使用 IE 方言的 JavaScritps,根據對照表提供的修改建議對你的認證頁面作出相應修改。對于使用.cab 的認證頁面,情況就比較復雜。需要分析這個.cab 在你的 JavaScripts 中的用法,判斷它的功能,我這里是用它獲得本地 IP。所以,我在本地執行腳本獲得 IP 來模擬這個功能。似乎.cab 多與 IP 有關。

  一個例子

  * 以我這里為例,我的使用環境:

  ISP:鐵通 ADSL

  認證方式:Web 認證

  ISP 的接入服務器:華為 Quidway MA5200E/F (具體型號不能完全確定)

  Linux:GENTOO 1.4 rc-3

  Browser: Mozilla 1.4a/Phoenix 0.5

  * 在 Linux 下用 mozilla (一定要用非 IE 瀏覽器獲得認證頁面,這話有點多余,但有的用戶是在 Window$ 下調試的),訪問 ISP 的 WEB 認證頁面時,瀏覽器中沒有顯示任何內容,根本無法輸入帳號和密碼,更談不上通過認證。這難不倒咱 linuxer, 查看認證頁面(/index.jsp)源碼,發現這兩段 javascript:


復制代碼
代碼如下:

    id="PortalClient"
    codebase=http://61.61.61.61:80/PortalAX.cab#version=1,0,1,8
    ...
    var clientIp = PortalClient.localIP;
    var languagetype = 0;
    if ((clientIp=="")  (clientIp==null)) {
    window.parent.location.href="/ipError.jsp";
    } else {
    window.parent.location.href="/queryPort.jsp?ip="+clientIp+"newbl="+languagetype;
    }

  可以看出它用 PortalClient 獲得本地的 IP,如果成功,轉到 http://你的WEB認證頁面/queryPort.jsp?ip=你當前的IP 。而 Mozilla 不支持它獲取 IP (PortalClient,是針對IE的,唉,這個程序編得太短視),看來問題出在這里。既然如此,我們可以手工加上自己的 IP(這個 IP 是與 ADSL 相聯的網卡從 ISP 的 DHCP 服務器獲得的地址)。在 Mozilla 地址欄中輸入:

    http://61.61.61.61/queryPort.jsp?ip=192.168.0.2

    --------^^^^^^^^^^^------------------^^^^^^^^^^^

    --------你的ISP認證服務器 ------------- 你當前的IP

  嗒嗒,登錄頁面出來啦!

  趕快輸入帳號,密碼,按登錄按鈕(期待中。。。)。

   viva!!!

  ISP 的首頁終于被揪出來啦,在終端中 ping www.gnu.org ,ping 通,沒問題。

  * 至此,在 Linux 下 web 認證方式已經完成。方法很簡單,每次上網時,在 mozilla 的地址欄中輸入:

  http://你的ISP認證服務器地址/queryPort.jsp?ip=你當前的IP

  登錄頁面出來后,和 IE 中的操作過程完全一樣。

    * 當然你可以把這些步驟寫成一個腳本,以后簡單執行腳本就可以了。

復制代碼
代碼如下:

    #!/bin/bash
    dhcpcd eth1
    phoenix http://61.61.61.61/queryPort.jsp?ip=`ifconfig eth1 grep inet sed 's/^ *//' sed 's/ /:/g' cut -f3 -d:`

  說明:

  eth1 是與 ADSL 聯的網卡名,根據你的實際情況填寫。
  61.61.61.61 是我這 ISP 的認證地址。
  后面一段是獲得 eth1 的 ip 地址。
  注意!一定要用非 IE 瀏覽器獲得調試認證頁面,因為 IE 可以執行認證頁面的 JavaScripts,有些認證過程實際上是執行多個頁面完成的,IE 最后停留的頁面不一定是起始的認證頁面,你有可能漏掉前面的重要信息,我這里就是這種情況。

另外一種方法

  如果你對方法 3 不滿意,可以用方法 5,繼續分析 web 認證的原理,編寫自己的認證程序。其實搞清原理后,實現的方法更簡單,更靈活,而且在 ISP 要求客戶端定時發送 keep-alive 包的情況下,也只能采取這種方法。我是這樣做的:

  1。用網絡分析軟件(如:ethereal),抓取正常認證過程的通訊包;

  在 windoze 下,用 ethereal 抓包。注意抓包時,除了 IE 不要啟動其它產生網絡通訊的程序,以免產生干擾數據;保存這些通訊包。

  2。分析所抓包的內容;

  只要看一眼 web 認證過程產生的通訊包,你就明白我為什么說這種方法更簡單了。簡單講,web 認證方式實際是客戶端用 http 協議向 ISP 發送用戶名、密碼和 IP 等內容的過程。客戶端讀取認證頁面;將填寫好認證頁面表格發送到 ISP 的認證服務器。過程就這么簡單。

  3。編寫生成這些包的程序;

  用任意一個支持 http 協議的語言或工具,編寫向認證服務器 POST 認證頁面中 form 的程序即可,甚至讀取認證頁面都不需要。我用 curl 和 python 各做了一個。如果你略微了解 http 協議,只要找到認證頁面中向服務器 POST 用戶名、密碼等數據的 form,然后轉換為你采用語言的語法格式就可以了,根本不需要分析認證頁面中繁雜的 Javascripts。對計時窗發出的 keep-alive 包也采用同樣的方法。

  例子:

  * 認證頁面中的

復制代碼
代碼如下:

form id="mainform" name="mainform" method="post" action="http://61.61.61.61:80/secu/webLogin.jsp">
input type="hidden" name="connectname" value="">
input value="-1" name="connecttype" type="hidden">
input value="0" name="consumeright" type="hidden">
input value="0" name="separatecard" type="hidden">
inputvalue="192.168.000.000" name="localip" type="hidden">
input value="0" name="IsIndex" type="hidden">
用戶名:input name="username">
密 碼:inputname="password" type="password">
input name="lianjiewangluo" type="submit">


* 用 curl 寫的一個腳本:

bash/shell Code復制內容到剪貼板
  1.  #!/bin/bash    
  2.     /etc/init.d/myiptables start    
  3.     dhcpcd eth1    
  4.     MYIP=`ifconfig eth1 grep inet sed 's/^ *//' sed 's/ /:/g' cut -f3 -d:`    
  5.     echo $MYIP    
  6.     UN=88888888    
  7.     SERVER=61.61.61.61    
  8.     curl --trace trace.txt -A 'Mozilla' -d "username=$UNpassword=8888localip=$MYIPconnectname=connecttype=-1" http://$SERVER/secu/webLogin.jsp   

說明:curl 是一個用 url 語法傳輸文件的命令行程序,支持 http,ftp 等協議,類似 wget。

  上例中,curl 的命令行參數 -A 指明客戶端的類型,這是服務器為了安全,需要指明。Mozilla 或 IE 都可以,我更愿意用 Mozilla。 -d 是必需的,表示用 POST 方法。-d 后的內容就是用戶名、密碼 IP 地址等信息,根據你的認證頁面中 form 的 input 項目填寫,內容與其保持一致,參數間用 分開。后面是認證頁面的地址。執行這個腳本后,返回 200 OK,表示認證成功,否則,仔細檢查 -d 后的參數是否正常,地址是否正確。

  * 用 python 寫的認證程序:


復制代碼
代碼如下:

  #!/usr/bin/env python
    import httplib, urllib
    params = urllib.urlencode({'connectname': '',
    'connecttype': -1,
    'consumeright': 0,
    'separatecard': 0,
    'localip': '192.168.000.000',
    'IsIndex': 0,
    'username': 88888888,
    'password': 8888})
    
    headers = {'Accept': 'text/html', 'User-Agent': 'Mozilla',
    'Content-Type': 'application/x-www-form-urlencoded'}
    
    server = '61.61.61.61'
    path = '/secu/webLogin.jsp'
    
    conn = httplib.HTTPConnection(server)
    conn.request("POST", path, params, headers)
    r1 = conn.getresponse()
    print r1.status, r1.reason
    data1 = r1.read()
    print data1
    conn.close()

  產生 keep-alive 包的程序


復制代碼
代碼如下:

    #!/usr/bin/env python
    import httplib
    
    def testHttplib(server, path):
    req = httplib.HTTP(server)
    req.putrequest('GET', path)
    req.putheader('Accept', 'text/html')
    req.putheader('User-Agent', 'Mozilla')
    req.endheaders()
    ec, em, h = req.getreply()
    fd = req.getfile()
    return fd.read(), (ec, em)
    
    myip = '192.168.000.000'
    server = '61.61.61.61'
    path = '/ClientProcess.jsp?MsgType=1ISNNO=1001LocalIP=' + myip
    
    # print 'testing "%s%s"' % (server, path)
    dataHttplib, result = testHttplib(server, path)
    # print "data length (httplib):", len(dataHttplib), result
    # print dataHttplib

  說明:

  python 是一個功能強大的腳本語言,與 Perl 類似。正如你看到的,它和 curl 完成同樣的工作,但更優雅。這里要注意別漏掉'User-Agent' 和 'Content-Type' 內容,我在這個上面浪費了不少時間。其它與 curl 的說明一樣。

  最后,將下面內容加到 crontab 中,保證每 5 分鐘向 ISP 發送一個 keep-alive 包,模擬計時窗功能。

   */5 * * * * /home/zest/keepalive.py

  方法 5 的總結:

  * 方法簡單,思路清晰

  * 適應性廣

  * 腳本實現,脫離瀏覽器和圖形環境,更適于需要自動登錄的環境(例如,自建的服務器)

  一些成功的例子:

  * whz81 朋友

  南京電信

  * zest 就是我

  西安鐵通

  * 你的位置

  歡迎你與大家共同分享你的成功經驗

  相關的鏈接:

  * 從特有的 DOMs 和 Markup 轉移到 W3C 標準。http://www.stopbadtherapy.com/standards.shtml

  后記

  這篇小文是我在解決 Linux 下 Web 認證方式上網問題時的一些文字總結。由于本人的能力有限以及環境的限制,文中的內容肯定相當粗淺,會存在一些錯誤,希望各位能夠批評指正,共同完善這篇文字。這里,我希望盡量說明解決問題的思路和方法,而不是只給出結果。授人以魚,不如授人以漁。另外,這篇文字是兩個時期完成的,方法 3 是在四月完成的。最近,七月,我的 ISP 改變了 Web 認證頁面,所以產生了方法 5。為了保持延續性,沒有刪除方法 3,所以比較羅嗦。

  最后,歡迎大家分享自己的成功經驗。

標簽:晉中 呼和浩特 香港 林芝 三明 連云港 公主嶺 常德

巨人網絡通訊聲明:本文標題《在Linux下通過WEB認證方式上網》,本文關鍵詞  在,Linux,下,通過,WEB,認證,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《在Linux下通過WEB認證方式上網》相關的同類信息!
  • 本頁收集關于在Linux下通過WEB認證方式上網的相關信息資訊供網民參考!
  • 推薦文章
    日韩免费在线| 天天综合在线观看 | 国产一区二区精品尤物| 亚洲天堂在线播放| 韩国三级香港三级日本三级| 国产国语对白一级毛片| 国产福利免费视频| 天天做日日爱夜夜爽| 国产美女在线一区二区三区| 九九精品久久| 青草国产在线观看| 精品国产一区二区三区精东影业 | 色综合久久天天综线观看| 免费国产在线视频| 欧美激情一区二区三区视频高清 | 91麻豆精品国产自产在线观看一区| 欧美激情在线精品video| 九九久久99综合一区二区| 午夜欧美成人久久久久久| 99久久精品国产麻豆| 精品国产亚洲一区二区三区| 超级乱淫伦动漫| 九九九网站| 国产极品白嫩美女在线观看看| 天天做日日爱| 四虎久久精品国产| 色综合久久天天综合观看| 日本特黄特色aaa大片免费| 国产视频一区二区在线观看| 亚洲天堂在线播放| 欧美大片aaaa一级毛片| 亚洲精品永久一区| 999精品视频在线| 美女被草网站| 高清一级淫片a级中文字幕| 毛片成人永久免费视频| 国产a毛片| 精品国产香蕉伊思人在线又爽又黄| 天天做日日爱夜夜爽| 二级片在线观看| 四虎论坛| 午夜精品国产自在现线拍| 国产不卡高清在线观看视频 | 成人高清视频在线观看| 日韩中文字幕在线播放| 香蕉视频久久| 午夜激情视频在线播放| 欧美大片aaaa一级毛片| 黄视频网站免费看| 四虎影视久久久免费| 亚欧成人乱码一区二区| 亚洲 激情| 日韩字幕在线| 毛片成人永久免费视频| 国产网站免费视频| 999精品视频在线| 免费一级片在线| 免费国产在线观看| 韩国毛片免费| a级黄色毛片免费播放视频| 高清一级毛片一本到免费观看| 国产91精品一区二区| 成人a大片在线观看| 日韩在线观看视频免费| 91麻豆国产| 亚洲精品永久一区| 国产视频一区二区在线观看| 99久久精品国产高清一区二区| 国产国语对白一级毛片| 99久久精品国产高清一区二区| 日本在线不卡视频| 国产一区二区福利久久| 国产精品免费久久| 亚洲女人国产香蕉久久精品| 青青久久精品| 精品视频在线看| 午夜在线影院| 国产视频网站在线观看| 日韩在线观看免费| 午夜家庭影院| 沈樵在线观看福利| 久久久久久久久综合影视网| 麻豆污视频| 麻豆系列 在线视频| 国产精品免费久久| 超级乱淫伦动漫| 青青青草视频在线观看| 99久久视频| 人人干人人插| 久久精品大片| 成人高清视频在线观看| 青青久热| 欧美激情影院| 美女免费毛片| 国产一区二区福利久久| 精品国产三级a| 欧美激情一区二区三区视频高清 | 国产91精品系列在线观看| 四虎久久精品国产| 欧美大片aaaa一级毛片| 国产激情一区二区三区| 青青久久精品| 99久久精品国产高清一区二区| 欧美日本二区| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 成人免费观看男女羞羞视频| 精品在线免费播放| 国产亚洲免费观看| 免费毛片基地| 国产亚洲精品成人a在线| 精品毛片视频| 国产麻豆精品| 国产精品自拍一区| 日韩字幕在线| 99色视频| 日本免费乱理伦片在线观看2018| 久久99这里只有精品国产| 精品视频在线看| 国产美女在线一区二区三区| 国产伦久视频免费观看 视频| 精品国产一区二区三区久| 久久国产精品永久免费网站| 欧美日本二区| 黄视频网站免费| 色综合久久天天综线观看| a级毛片免费观看网站| 色综合久久天天综合| 亚洲天堂在线播放| 黄视频网站在线看| 香蕉视频久久| 日日日夜夜操| 日日夜夜婷婷| 精品久久久久久影院免费| 91麻豆精品国产高清在线| 久久99欧美| 999久久狠狠免费精品| 韩国毛片免费| 香蕉视频亚洲一级| 亚洲精品永久一区| 天天综合在线观看 | 日韩av片免费播放| 香蕉视频亚洲一级| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 日韩一级黄色| 日韩av片免费播放| 国产原创视频在线| 久草免费资源| 午夜在线亚洲| 精品国产亚一区二区三区| 欧美另类videosbestsex高清| 亚洲第一色在线| 沈樵在线观看福利| 欧美一区二区三区在线观看| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 久久久久久久久综合影视网| 国产韩国精品一区二区三区| 超级乱淫伦动漫| 欧美大片一区| 日韩在线观看免费| 夜夜操网| 欧美a级大片| 日日夜夜婷婷| 国产韩国精品一区二区三区| 欧美爱爱网| 91麻豆精品国产自产在线观看一区| 四虎论坛| 久草免费在线观看| 日韩专区亚洲综合久久| 久久久成人网| 一级毛片视频播放| 国产一区精品| 日韩字幕在线| 国产一区二区福利久久| 久久国产精品自线拍免费| 99色视频在线观看| 国产极品白嫩美女在线观看看| 国产91精品一区二区| 青草国产在线观看| 午夜欧美成人久久久久久| 91麻豆爱豆果冻天美星空| 欧美日本免费| 韩国三级一区| 九九干| 亚洲天堂在线播放| 日韩免费在线| 亚洲第一色在线| 国产a毛片| 可以免费在线看黄的网站| 国产韩国精品一区二区三区| 高清一级毛片一本到免费观看| 亚洲 激情| 国产一区二区精品| 日韩字幕在线| 天天做日日爱| 青青青草视频在线观看| 免费的黄视频| 可以免费在线看黄的网站| 亚洲精品久久久中文字| 日本在线不卡视频| 可以免费看毛片的网站|