# Can someone beta-test a little Speedport W 500 reconnect-scr

**URL:** <https://www.ruby-forum.com/t/can-someone-beta-test-a-little-speedport-w-500-reconnect-scr/92534>\
**Category:** Ruby\
**Created:** [April 20, 2007, 1:31pm UTC](https://www.ruby-forum.com/t/can-someone-beta-test-a-little-speedport-w-500-reconnect-scr/92534 "2007-04-20T13:31:29Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![mrpink](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/ecc23a/32.png) [@mrpink](https://www.ruby-forum.com/u/mrpink)\
**Post date:** [April 20, 2007, 1:31pm UTC](https://www.ruby-forum.com/t/can-someone-beta-test-a-little-speedport-w-500-reconnect-scr/92534/1 "2007-04-20T13:31:29Z")

</div>

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::PingExternal.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’,  
‘var:pagename’ =\> ‘home’,  
‘var:menu’ =\> ‘home’,  
‘login:command/password’ =\> @passwort})  
Net::HTTP.post\_form(URI.parse(@url),  
{‘connection0:pppoe:settings/idle’ =\>  
‘5’,  
‘connection0:pppoe:settings/mode’ =\> ‘on\_demand’})  
Net::HTTP.post\_form(URI.parse(@url),  
{‘connection0:pppoe:settings/idle’ =\>  
‘0’,  
‘connection0:pppoe: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
