M
mrpink
Hi,
I wrote a little script for speedport and fritz.box router reconnecting.
For the Fritz.Box I can test it but I don't have a speedport so I was
wondering if one of you could test it?
require 'uri'
require 'rubygems'
require 'net/ping'
require 'net/http'
class Router
def initialize
@startIP = get_IP
puts get_IP #output
end
def get_IP
@url = URI.parse('http://www.wieistmeineip.de')
response = Net::HTTP.get_response(@url)
response.body.scan(/^Ihre IP-Adresse ist.+/) { |ipadresse| @IP =
ipadresse.sub(/^.+">/,'').sub(/<.+$/,'') }
get_IP=@IP
end
def check_new_ip
@check = false
@tryout = 0
while @check==false
if Net:ingExternal.new('www.google.com').ping
if @startIP != get_IP
puts get_IP #output
@check = true
else
@tryout++
my_router.reset(10) if tryout==5
end
end
end
end
def reset(waittime)
resetcommand
sleep(waittime)
end
end
class Fritz < Router
def resetcommand
@url='http://fritz.box/cgi-bin/webcm'
@passwort='1234567'
Net::HTTP.post_form(URI.parse(@url),
{'getpage' => '../html/de/menus/menu2.html',
'errorpage' => '../html/index.html',
'var:lang' => 'de',
'varagename' => 'home',
'var:menu' => 'home',
'login:command/password' => @passwort})
Net::HTTP.post_form(URI.parse(@url),
{'connection0ppoe:settings/idle' => '5',
'connection0ppoe:settings/mode' => 'on_demand'})
Net::HTTP.post_form(URI.parse(@url),
{'connection0ppoe:settings/idle' => '0',
'connection0ppoe:settings/mode' => 'lcp'})
end
end
class Speedport < Router
def resetcommand
@IP='192.168.0.1'
@passwort='1234567'
Net::HTTP.post_form(URI.parse(@IP+'/start.login'),{'P1' =>
@passwort})
Net::HTTP.get_response(@IP+'/pppctl.cmd?action=0')
Net::HTTP.post_form(URI.parse(@IP+'/start.login'),{'P1' =>
@passwort})
Net::HTTP.get_response(@IP+'/pppctl.cmd?action=1')
end
end
################################ actual code #############################
my_router = Speedport.new
my_router.reset(10)
my_router.check_new_ip
I wrote a little script for speedport and fritz.box router reconnecting.
For the Fritz.Box I can test it but I don't have a speedport so I was
wondering if one of you could test it?
require 'uri'
require 'rubygems'
require 'net/ping'
require 'net/http'
class Router
def initialize
@startIP = get_IP
puts get_IP #output
end
def get_IP
@url = URI.parse('http://www.wieistmeineip.de')
response = Net::HTTP.get_response(@url)
response.body.scan(/^Ihre IP-Adresse ist.+/) { |ipadresse| @IP =
ipadresse.sub(/^.+">/,'').sub(/<.+$/,'') }
get_IP=@IP
end
def check_new_ip
@check = false
@tryout = 0
while @check==false
if Net:ingExternal.new('www.google.com').ping
if @startIP != get_IP
puts get_IP #output
@check = true
else
@tryout++
my_router.reset(10) if tryout==5
end
end
end
end
def reset(waittime)
resetcommand
sleep(waittime)
end
end
class Fritz < Router
def resetcommand
@url='http://fritz.box/cgi-bin/webcm'
@passwort='1234567'
Net::HTTP.post_form(URI.parse(@url),
{'getpage' => '../html/de/menus/menu2.html',
'errorpage' => '../html/index.html',
'var:lang' => 'de',
'varagename' => 'home',
'var:menu' => 'home',
'login:command/password' => @passwort})
Net::HTTP.post_form(URI.parse(@url),
{'connection0ppoe:settings/idle' => '5',
'connection0ppoe:settings/mode' => 'on_demand'})
Net::HTTP.post_form(URI.parse(@url),
{'connection0ppoe:settings/idle' => '0',
'connection0ppoe:settings/mode' => 'lcp'})
end
end
class Speedport < Router
def resetcommand
@IP='192.168.0.1'
@passwort='1234567'
Net::HTTP.post_form(URI.parse(@IP+'/start.login'),{'P1' =>
@passwort})
Net::HTTP.get_response(@IP+'/pppctl.cmd?action=0')
Net::HTTP.post_form(URI.parse(@IP+'/start.login'),{'P1' =>
@passwort})
Net::HTTP.get_response(@IP+'/pppctl.cmd?action=1')
end
end
################################ actual code #############################
my_router = Speedport.new
my_router.reset(10)
my_router.check_new_ip