解決遠(yuǎn)程連接小型機(jī)登陸網(wǎng)關(guān)問(wèn)題

最近生物信息學(xué)與現(xiàn)代統(tǒng)計(jì)課已經(jīng)進(jìn)入第二個(gè)項(xiàng)目RNA-seq數(shù)據(jù)分析,根據(jù)已有的流程肉瓦,我們需要使用cufflinks程序拼接轉(zhuǎn)錄本,但是cufflinks需要聯(lián)網(wǎng)更新數(shù)據(jù)(可以使用--no-update-check參數(shù)忽略網(wǎng)絡(luò)更新,但是合并轉(zhuǎn)錄本的程序cuffmerge并不能忽略)谴咸,但是一直以來(lái)大家都以為學(xué)校的小型機(jī)并不能上網(wǎng)搓逾,所以程序一直被阻塞卷谈,導(dǎo)致進(jìn)度卡住,本文就記錄一下我解決這個(gè)問(wèn)題的探索和最終的方案霞篡。

猜想

平時(shí)我們使用小型機(jī)世蔗,都是在機(jī)房?jī)?nèi)通過(guò)固定的IP來(lái)連接登陸小型機(jī),而在宿舍里朗兵,通過(guò)蘇大網(wǎng)(校園網(wǎng))也可以使用該IP來(lái)連接小型機(jī)污淋,那么,該小型機(jī)應(yīng)該連接在校園網(wǎng)的局域網(wǎng)中余掖,同時(shí)寸爆,猜想機(jī)房網(wǎng)絡(luò)使用固定IP,小型機(jī)的IP也是固定的(不固定怎么用,頓時(shí)覺(jué)得這個(gè)猜想不現(xiàn)實(shí)赁豆,但當(dāng)時(shí)確實(shí)這樣想了仅醇,不過(guò)最后也證實(shí)是正確的),所以很可能也在和機(jī)房在同樣的免費(fèi)上網(wǎng)的網(wǎng)段內(nèi)魔种。

證實(shí)可行

根據(jù)以上的猜想析二,進(jìn)行以下證實(shí)

  1. 使用ping命令來(lái)證實(shí)
$ ping baidu.com
PING baidu.com (180.149.132.47) 56(84) bytes of data.
64 bytes from 180.149.132.47: icmp_seq=1 ttl=48 time=208 ms
64 bytes from 180.149.132.47: icmp_seq=2 ttl=48 time=209 ms
64 bytes from 180.149.132.47: icmp_seq=3 ttl=48 time=207 ms
64 bytes from 180.149.132.47: icmp_seq=4 ttl=48 time=211 ms
64 bytes from 180.149.132.47: icmp_seq=5 ttl=48 time=209 ms
64 bytes from 180.149.132.47: icmp_seq=6 ttl=48 time=209 ms
^C
--- baidu.com ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5006ms
rtt min/avg/max/mdev = 207.858/209.435/211.620/1.187 ms

可以發(fā)現(xiàn),確實(shí)是能夠聯(lián)網(wǎng)的节预,但是叶摄,試試訪問(wèn)網(wǎng)頁(yè)

$ curl baidu.com

然后就沒(méi)有然后了……這就很尷尬了。
至于為什么ping命令可以連通百度卻不能打開(kāi)網(wǎng)頁(yè)安拟,猜測(cè)應(yīng)該是網(wǎng)關(guān)系統(tǒng)是限制了HTTP請(qǐng)求蛤吓,但是ping命令使用更為底層的ICMP協(xié)議,純屬猜測(cè)糠赦,別干壞事柱衔!

  1. 試試打開(kāi)網(wǎng)關(guān)的頁(yè)面
$ curl wg.suda.edu.cn
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>蘇州大學(xué)網(wǎng)關(guān)登錄</title>
……以下省略……

可以看到屏幕嘩啦嘩啦出來(lái)一大堆,然而愉棱,重要的是唆铐!我們打開(kāi)了網(wǎng)關(guān),所以我們知道奔滑,登陸網(wǎng)關(guān)應(yīng)該就是能夠上網(wǎng)了艾岂。而且這個(gè)舊版的網(wǎng)關(guān)是免費(fèi)網(wǎng)域內(nèi)才使用的,開(kāi)熏朋其!

發(fā)掘可用的工具

到了這一步王浴,就要想辦法來(lái)登陸網(wǎng)關(guān)了,根據(jù)多年爬蟲(chóng)經(jīng)驗(yàn)梅猿,猜測(cè)應(yīng)該是發(fā)起一個(gè)HTTP請(qǐng)求就可以登陸網(wǎng)關(guān)氓辣,然后轉(zhuǎn)戰(zhàn)自己的電腦,來(lái)研究如何來(lái)登陸袱蚓。
打開(kāi)Chrome钞啸,登陸網(wǎng)關(guān)頁(yè)面,調(diào)出調(diào)試工具喇潘,可以看到在登陸過(guò)程中体斩,瀏覽器發(fā)起了一個(gè)POST請(qǐng)求

請(qǐng)求頭部
請(qǐng)求內(nèi)容,可恥地打了碼

再來(lái)發(fā)掘小型機(jī)上能用的資源颖低,雖然使用curl也能模擬發(fā)送HTTP請(qǐng)求絮吵,但是因?yàn)檫€要在網(wǎng)頁(yè)里找到兩個(gè)奇怪的參數(shù)(應(yīng)該時(shí)CRSF的令牌),這個(gè)對(duì)于沒(méi)怎么接觸過(guò)shell的小白真的是會(huì)很無(wú)語(yǔ)忱屑,慶幸的是蹬敲,小型機(jī)安裝的是anaconda發(fā)行版的Python暇昂,還預(yù)裝了requests庫(kù),臉上瞬間就露出了老司機(jī)的笑容伴嗡。

開(kāi)始碼代碼

直接上改進(jìn)多次的最終代碼:

#! /opt/ibm/miniconda/bin/python
# -*- coding:utf-8 -*-
"""
@author: 楊滿球
@file: wg.py
@time: 2016/11/12 12:03
"""
from requests.exceptions import ReadTimeout
import requests
import re
import sys
import getpass

def login():
    s = requests.session()
    r = s.get('http://wg.suda.edu.cn/')
    viewstate = re.findall('id="__VIEWSTATE" value="(.+?)"', r.text)[0]
    eventvalidation = re.findall('id="__EVENTVALIDATION" value="(.+?)"', r.text)[0]
    try:
        studentid = sys.argv[1]
    except:
        studentid = raw_input(u'studentid:')
    try:
        password = sys.argv[2]
    except:
        password = getpass.getpass(u'password:')
    data = {
        '__EVENTTARGET': '',
        '__EVENTARGUMENT': '',
        '__VIEWSTATE': viewstate,
        '__EVENTVALIDATION': eventvalidation,
        'TextBox1': studentid,
        'TextBox2': password,
        'nw': 'RadioButton2',
        'tm': 'RadioButton8',
        'Button1': '登錄網(wǎng)關(guān)'
    }
    r = s.post('http://wg.suda.edu.cn', data=data)
    html = r.text
    if u'成功登錄' in html:
        print(u'succeed!')
    else:
        print(u'fail!')

if __name__ == '__main__':
    try:
        r = requests.get('http://baidu.com', timeout=3)
    except ReadTimeout as e:
        login()
    else:
        print('no necessary!')

原理很簡(jiǎn)單急波,使用Python模擬發(fā)起請(qǐng)求,然后測(cè)試一下

$ python wg.py <studentid> <password>
succeed!

不會(huì)是假的吧闹究?試試訪問(wèn)網(wǎng)頁(yè)

$ curl baidu.com
<html>
<meta http-equiv="refresh" content="0;url=http://www.baidu.com/">
</html>

這,真的成功了食店?好吧渣淤,真的是成功的!

人性化

最后想了想吉嫩,如果能把這東西直接變成一個(gè)命令价认,,讓大家能方便地使用才能順利裝逼白悦洹用踩!故又去研究了一大波,發(fā)現(xiàn)Linux是能夠根據(jù)第一行的注釋來(lái)規(guī)定解釋器的忙迁,如此這般就有了第一句注釋?zhuān)贿^(guò)這里有個(gè)大坑脐彩,那就是#!之后這個(gè)空格,是必須的姊扔,找了老大一圈最后還是在StackOverflow上的小角落找到的答案惠奸,其次,一定要是Unix格式的文檔恰梢,不然還是一直報(bào)錯(cuò)佛南,最后重命名時(shí)去掉后綴名,然后移動(dòng)到usr/local/bin下嵌言,再把權(quán)限改為755嗅回,那么大家就可以暢快地使用

$ wg
no necessary! # 當(dāng)還能上網(wǎng)時(shí)
studentid:<studentid> # 不能上網(wǎng)時(shí)
password: # 密碼保密不回顯
succeed! # 登陸成功
fail! # 登陸失敗,可能是密碼錯(cuò)誤
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末摧茴,一起剝皮案震驚了整個(gè)濱河市绵载,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌苛白,老刑警劉巖尘分,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異丸氛,居然都是意外死亡培愁,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)缓窜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)定续,“玉大人谍咆,你說(shuō)我怎么就攤上這事∷焦桑” “怎么了摹察?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)倡鲸。 經(jīng)常有香客問(wèn)我供嚎,道長(zhǎng),這世上最難降的妖魔是什么峭状? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任克滴,我火速辦了婚禮,結(jié)果婚禮上优床,老公的妹妹穿的比我還像新娘劝赔。我一直安慰自己,他們只是感情好胆敞,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布着帽。 她就那樣靜靜地躺著,像睡著了一般移层。 火紅的嫁衣襯著肌膚如雪仍翰。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,784評(píng)論 1 290
  • 那天观话,我揣著相機(jī)與錄音歉备,去河邊找鬼。 笑死匪燕,一個(gè)胖子當(dāng)著我的面吹牛蕾羊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播帽驯,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼龟再,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了尼变?” 一聲冷哼從身側(cè)響起利凑,我...
    開(kāi)封第一講書(shū)人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嫌术,沒(méi)想到半個(gè)月后哀澈,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡度气,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年割按,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片磷籍。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡适荣,死狀恐怖现柠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情弛矛,我是刑警寧澤够吩,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站丈氓,受9級(jí)特大地震影響周循,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜万俗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一湾笛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧该编,春花似錦迄本、人聲如沸硕淑。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)置媳。三九已至于樟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拇囊,已是汗流浹背迂曲。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留寥袭,地道東北人路捧。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像传黄,于是被迫代替她去往敵國(guó)和親杰扫。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容