Last active
December 28, 2015 07:09
-
-
Save Youngv/7461808 to your computer and use it in GitHub Desktop.
这是一个实现在命令行登录和注销校园网的小脚本。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# encoding = utf-8 | |
require 'mechanize' | |
class Internet | |
# 定义自动登录的地址 | |
@@url = 'http://192.168.31.4:8080' | |
#初始化,生成一个Mechanize对象 | |
def initialize | |
@agent = Mechanize.new | |
end | |
# 获取当前页面的表单 | |
def get_form | |
@page = @agent.get(@@url) | |
@current_form = @page.form('AuthenticateForm') | |
end | |
# 登录 | |
def login | |
get_form | |
if @current_form.submit_button?('Submit') # 如果有登录按钮,就执行登录动作,否则提示已经登录 | |
@login_form = @current_form | |
@login_form.AuthenticateUser = $USERNAME | |
@login_form.AuthenticatePassword = $PASSWORD | |
@logout_form = @agent.submit(@login_form).form('AuthenticateForm') | |
if @logout_form.submit_button?('Logout') # 如果登录成功,就显示成功提示,否则重复登录动作 | |
puts "Login Success." | |
else | |
login | |
end | |
else | |
puts "You have already login!" | |
end | |
end | |
#注销 | |
def logout | |
get_form | |
if @current_form.submit_button?('Logout') # 如果有注销按钮,就执行注销动作,否则提示还没登录 | |
@logout_form = @current_form | |
@login_form = @agent.submit(@logout_form, @logout_form.buttons.first).form('AuthenticateForm') | |
if @login_form.submit_button?('Submit') # 如果注销成功,就显示成功提示,否则重复注销动作 | |
puts "Logout Success." | |
else | |
logout | |
end | |
else | |
puts "You haven't login yet!" | |
end | |
end | |
# 查询流量 | |
def check_bytes | |
get_form | |
if @current_form.submit_button?('Logout') # 如果有注销按钮,就执行查询动作,否则提示还没登录 | |
used_bytes = @page.search("#ub").text.gsub(/,/,"").to_i # 搜索页面中的元素,找到id为"#ub"的元素 | |
puts "---------------" | |
puts "Used: #{used_bytes/1024/1024 + 1}MB" # 把 byte 转成 MB | |
total_bytes = @page.search("#tb").text.gsub(/,/,"").to_i | |
left_bytes = total_bytes - used_bytes | |
puts "Left: #{left_bytes/1024/1024}MB" | |
puts "---------------" | |
else | |
puts "You haven't login yet!" | |
end | |
end | |
end | |
stu = Internet.new | |
stu.login #登录 | |
stu.check_bytes #查询流量 | |
stu.logout #注销 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment