緣起:
我在學校玩 Beaglebone 需要網路,雖然我可以直接連我手機的網路,但,如果能直接連學校的 wifi 那就更方便了。
不過,我遇到了一個小問題,就是,連上我們學校的 wifi 後,它會跑出一個網頁,要你輸入學號跟密碼,確認身份後,你才能連到網路上。
輸入使用者跟密碼的網頁 |
可是,我在 Beaglebone 下就只有文字介面,不會跳出網頁來要我輸入,所以,我需要找其它方法來登入。
哦幹,我要怎麼輸入帳密 ? |
分析網頁資訊:
我看了一下學校登入頁面的網址資訊。
完整內容如下。
https://wlan2.ncyu.edu.tw/cgi-bin/login?cmd=login&mac=ac:b5:7d:36:85:e5&ip=10.51.204.35&essid=ncyu&apname=sm-b-205_1&apgroup=sm-b_buliding&url=https%3A%2F%2Fwlan2%2Encyu%2Eedu%2Etw%2F
那個 wlan2.ncyu.edu.tw 應該就是那台管理連線主機的 IP 位置,login? 後的東西應該就是用 Http 的 Get 方法傳給網頁的參數。
如果我要使用 Beaglebone 來傳上面的資料給主機的話,參數 ip 跟 mac 應該要改的,其他的參數看來是固定就那樣了 (我覺得啦) 。
再來,我還要送 USERNAME 跟 PASSWORD 給主機,這樣它才能識別。我在想,直接在上面那串網址再加 &使用者名稱=******&密碼=******* 說不定就可以了 (參數要用 & 分開)。在這之前,我要找到 HTML 裡用來輸入使用著名稱跟密碼的 input 標籤,它的 name 的值是什麼。
檢視網頁原始碼。
找到了,是 user 跟 password。
查看 Beaglebone 的 ip 跟 mac address:
連上學校的 wifi 後,只要輸入 ifconfig 的指令,就能顯示網路介面的資訊。因為是無線網路,所以要看 wlan0 的資料。
ip 位置是 10.51.204.121 ,mac 位置是 e0:e5:cf:7f:b2:19。
所以,我要傳過去的資料,應該是長成這樣子。
https://wlan2.ncyu.edu.tw/cgi-bin/login?cmd=login&mac=e0:e5:cf:7f:b2:19&ip=10.51.204.121&essid=ncyu&apname=sm-b-205_1&apgroup=sm-b_buliding&url=https%3A%2F%2Fwlan2%2Encyu%2Eedu%2Etw%2F&user=s1074541&password=********
PS : 我密碼不能公開,所以用 * 代替。
Linux 發送 Http 請求:
我參考了這篇文章。
所以,我只要輸入指令
curl "那一串資料"
大概就行了 吧 ?
結果:
我打完指令後,按下 Enter ,過了幾秒後,螢幕才有輸出訊息。
好像是回應了一個 "登入成功" 的 html 檔,所以,成功了嗎 ?
我要試試看,看能不能把我網誌的圖片抓到 Beagelbone 上。
目標圖片 |
我在 Starlight 的圖片上,點右鍵 - > 複製圖片網址,然後回到 Beaglebone 上輸入指令。
wget "圖片的網址"
執行結果 |
然後,我再輸入 ls 的指令,列出所在目錄下的所有資料。
成功抓到圖片,代表我們真的有連上網路。
可以用網路了 ~ ya ~ |
沒有留言:
張貼留言