婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 在Linux下通過WEB認(rèn)證方式上網(wǎng)

在Linux下通過WEB認(rèn)證方式上網(wǎng)

熱門標(biāo)簽:百度中國地圖標(biāo)注中心 依蘭縣地圖標(biāo)注app 公司400電話辦理價格 百度地圖標(biāo)注開鎖電話 pageadm實(shí)現(xiàn)地圖標(biāo)注 山東企業(yè)電銷機(jī)器人價格 潮州地圖標(biāo)注 安陽百應(yīng)電銷機(jī)器人加盟 琿春市地圖標(biāo)注app

摘要

  通過分析 windoze 下 Web 認(rèn)證過程,提出在 Linux 中用*腳本*實(shí)現(xiàn)通過 Web 認(rèn)證方式上網(wǎng)的方法

問題由來

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

分析原因

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

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

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

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

  解決方法

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

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

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

  一個例子

  * 以我這里為例,我的使用環(huán)境:

  ISP:鐵通 ADSL

  認(rèn)證方式:Web 認(rèn)證

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

  Linux:GENTOO 1.4 rc-3

  Browser: Mozilla 1.4a/Phoenix 0.5

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


復(fù)制代碼
代碼如下:

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

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

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

    --------你的ISP認(rèn)證服務(wù)器 ------------- 你當(dāng)前的IP

  嗒嗒,登錄頁面出來啦!

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

   viva!!!

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

  * 至此,在 Linux 下 web 認(rèn)證方式已經(jīng)完成。方法很簡單,每次上網(wǎng)時,在 mozilla 的地址欄中輸入:

  http://你的ISP認(rèn)證服務(wù)器地址/queryPort.jsp?ip=你當(dāng)前的IP

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

    * 當(dāng)然你可以把這些步驟寫成一個腳本,以后簡單執(zhí)行腳本就可以了。

復(fù)制代碼
代碼如下:

    #!/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 聯(lián)的網(wǎng)卡名,根據(jù)你的實(shí)際情況填寫。
  61.61.61.61 是我這 ISP 的認(rèn)證地址。
  后面一段是獲得 eth1 的 ip 地址。
  注意!一定要用非 IE 瀏覽器獲得調(diào)試認(rèn)證頁面,因?yàn)?IE 可以執(zhí)行認(rèn)證頁面的 JavaScripts,有些認(rèn)證過程實(shí)際上是執(zhí)行多個頁面完成的,IE 最后停留的頁面不一定是起始的認(rèn)證頁面,你有可能漏掉前面的重要信息,我這里就是這種情況。

另外一種方法

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

  1。用網(wǎng)絡(luò)分析軟件(如:ethereal),抓取正常認(rèn)證過程的通訊包;

  在 windoze 下,用 ethereal 抓包。注意抓包時,除了 IE 不要啟動其它產(chǎn)生網(wǎng)絡(luò)通訊的程序,以免產(chǎn)生干擾數(shù)據(jù);保存這些通訊包。

  2。分析所抓包的內(nèi)容;

  只要看一眼 web 認(rèn)證過程產(chǎn)生的通訊包,你就明白我為什么說這種方法更簡單了。簡單講,web 認(rèn)證方式實(shí)際是客戶端用 http 協(xié)議向 ISP 發(fā)送用戶名、密碼和 IP 等內(nèi)容的過程??蛻舳俗x取認(rèn)證頁面;將填寫好認(rèn)證頁面表格發(fā)送到 ISP 的認(rèn)證服務(wù)器。過程就這么簡單。

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

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

  例子:

  * 認(rèn)證頁面中的

復(fù)制代碼
代碼如下:

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復(fù)制內(nèi)容到剪貼板
  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 等協(xié)議,類似 wget。

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

  * 用 python 寫的認(rèn)證程序:


復(fù)制代碼
代碼如下:

  #!/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()

  產(chǎn)生 keep-alive 包的程序


復(fù)制代碼
代碼如下:

    #!/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 是一個功能強(qiáng)大的腳本語言,與 Perl 類似。正如你看到的,它和 curl 完成同樣的工作,但更優(yōu)雅。這里要注意別漏掉'User-Agent' 和 'Content-Type' 內(nèi)容,我在這個上面浪費(fèi)了不少時間。其它與 curl 的說明一樣。

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

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

  方法 5 的總結(jié):

  * 方法簡單,思路清晰

  * 適應(yīng)性廣

  * 腳本實(shí)現(xiàn),脫離瀏覽器和圖形環(huán)境,更適于需要自動登錄的環(huán)境(例如,自建的服務(wù)器)

  一些成功的例子:

  * whz81 朋友

  南京電信

  * zest 就是我

  西安鐵通

  * 你的位置

  歡迎你與大家共同分享你的成功經(jīng)驗(yàn)

  相關(guān)的鏈接:

  * 從特有的 DOMs 和 Markup 轉(zhuǎn)移到 W3C 標(biāo)準(zhǔn)。http://www.stopbadtherapy.com/standards.shtml

  后記

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

  最后,歡迎大家分享自己的成功經(jīng)驗(yàn)。

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

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《在Linux下通過WEB認(rèn)證方式上網(wǎng)》,本文關(guān)鍵詞  在,Linux,下,通過,WEB,認(rèn)證,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《在Linux下通過WEB認(rèn)證方式上網(wǎng)》相關(guān)的同類信息!
  • 本頁收集關(guān)于在Linux下通過WEB認(rèn)證方式上網(wǎng)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美精选午夜久久久乱码6080| 欧美手机在线视频| 91精品国产综合久久久久久| 精品在线免费观看| 亚洲精品成人悠悠色影视| 日韩欧美不卡在线观看视频| 色天天综合久久久久综合片| 亚洲在线视频一区| 久久亚洲私人国产精品va媚药| av一二三不卡影片| 韩国毛片一区二区三区| 日韩中文字幕不卡| 亚洲国产一区二区a毛片| 国产精品久久久久一区| 精品欧美一区二区久久| 欧美疯狂性受xxxxx喷水图片| 91丨九色丨尤物| 成人美女在线观看| 国产麻豆视频精品| 国产最新精品免费| 久久精品国产免费| 久久狠狠亚洲综合| 久久99久久99精品免视看婷婷| 青草av.久久免费一区| 视频一区欧美日韩| 日本中文字幕一区二区有限公司| 亚洲国产日韩在线一区模特| 亚洲最大成人网4388xx| 亚洲精品一二三| 亚洲精品中文字幕乱码三区| 一个色综合网站| 午夜精品久久久久| 久久99九九99精品| 成人美女视频在线看| 91麻豆成人久久精品二区三区| 91麻豆成人久久精品二区三区| 91国偷自产一区二区使用方法| 欧美综合在线视频| 欧美精选在线播放| 久久久国际精品| 国产精品欧美极品| 依依成人综合视频| 日韩电影在线免费| 国产一区二区女| 99国产精品视频免费观看| 91国模大尺度私拍在线视频| 色婷婷精品久久二区二区蜜臂av | 色视频成人在线观看免| 欧美三级中文字幕在线观看| 日韩一区二区在线免费观看| 欧美va在线播放| 中文字幕乱码日本亚洲一区二区 | 午夜日韩在线观看| 天堂va蜜桃一区二区三区漫画版| 免费高清在线一区| 狠狠色丁香婷婷综合久久片| aa级大片欧美| 日本道色综合久久| 欧美夫妻性生活| 国产精品福利一区二区三区| 一区二区三区四区不卡视频| 日韩和欧美一区二区三区| 久久国产精品第一页| eeuss鲁片一区二区三区在线观看| caoporn国产精品| 精品少妇一区二区三区视频免付费 | 久久亚洲综合色| 中文字幕五月欧美| 日本伊人午夜精品| 成人免费不卡视频| 欧美精品一区在线观看| 综合av第一页| 日韩av电影免费观看高清完整版 | 一区二区三区国产精华| 国产一区高清在线| 欧美日韩激情在线| 久久久亚洲欧洲日产国码αv| 亚洲va韩国va欧美va精品| 高清日韩电视剧大全免费| 欧美日韩精品系列| 一区精品在线播放| 国产在线精品一区二区不卡了 | 91官网在线观看| 久久久亚洲国产美女国产盗摄| 亚洲五码中文字幕| jlzzjlzz亚洲女人18| 日韩三级电影网址| 亚洲一区二区三区中文字幕在线| 激情欧美一区二区三区在线观看| 一本高清dvd不卡在线观看| 国产视频一区二区在线| 日精品一区二区| 欧美综合久久久| 亚洲视频中文字幕| 国产原创一区二区| 日韩一区二区三区在线观看| 亚洲一区电影777| 99免费精品在线观看| 欧美一级专区免费大片| 天堂影院一区二区| 91免费国产在线观看| 国产精品久久久久一区| 国产一区二区三区黄视频 | 一区二区成人在线观看| 99久久综合精品| 欧美一区二区三区在线视频 | 成人av资源在线| 国产欧美精品一区aⅴ影院| 久久精工是国产品牌吗| 日韩欧美综合在线| 美女视频黄久久| 日韩三级电影网址| 国产最新精品免费| 中文字幕欧美三区| jlzzjlzz欧美大全| 国产精品不卡视频| 欧美亚洲尤物久久| 91精品国产欧美一区二区| 美女mm1313爽爽久久久蜜臀| 欧美精品久久天天躁| 亚洲二区在线视频| 欧美日韩在线电影| 日韩激情视频网站| 337p日本欧洲亚洲大胆精品| 久久99深爱久久99精品| 国产日韩精品一区二区三区在线| 精品系列免费在线观看| 精品国产乱码久久久久久闺蜜| 久久国内精品视频| 国产欧美一区视频| 色先锋资源久久综合| 爽好多水快深点欧美视频| 欧美中文字幕一区二区三区亚洲| 丝袜亚洲另类欧美| 91精品国产一区二区| 国产一区二区三区免费在线观看| 国产午夜精品在线观看| 91网上在线视频| 亚洲成人黄色小说| www国产成人| 99re成人精品视频| 天涯成人国产亚洲精品一区av| 精品国产百合女同互慰| 欧美精品123区| 成人中文字幕合集| 一区二区三区在线视频观看| 欧美一区二区福利在线| 成人黄色777网| 五月天欧美精品| 中日韩免费视频中文字幕| 欧美色综合网站| 国产成人在线观看免费网站| 亚洲欧美区自拍先锋| 日韩欧美视频一区| 成人av网站免费观看| 日本vs亚洲vs韩国一区三区| 国产日韩欧美一区二区三区乱码 | 久久久三级国产网站| 日韩电影免费在线观看网站| 亚洲欧美影音先锋| 日韩午夜在线观看视频| 一本到不卡精品视频在线观看| 美女视频第一区二区三区免费观看网站| 国产欧美日韩不卡| 337p亚洲精品色噜噜狠狠| 色悠悠亚洲一区二区| 高清国产午夜精品久久久久久| 欧美成va人片在线观看| 欧美在线视频不卡| 99久久免费视频.com| 色综合久久久久综合体桃花网| 狠狠色综合日日| 蜜臀a∨国产成人精品| 久久综合九色综合97婷婷女人| 欧美性大战久久| 91精品办公室少妇高潮对白| 粉嫩一区二区三区性色av| 精品伊人久久久久7777人| 午夜精品影院在线观看| 亚洲444eee在线观看| 亚洲最大成人综合| 亚洲电影视频在线| 一区二区久久久| 亚洲成人自拍一区| 一区二区三区四区av| 亚洲国产日韩精品| 午夜日韩在线电影| 日本v片在线高清不卡在线观看| 亚洲线精品一区二区三区八戒| 亚洲色图在线播放| 亚洲码国产岛国毛片在线| **欧美大码日韩| 亚洲欧美日韩在线不卡| 亚洲免费色视频| 亚洲国产综合人成综合网站| 国产精品白丝jk白祙喷水网站 | 亚洲综合另类小说| 亚洲资源中文字幕| 亚洲va欧美va人人爽午夜| 亚洲成人资源在线|