Home     |     .Net Programming    |     cSharp Home    |     Sql Server Home    |     Javascript / Client Side Development     |     Ajax Programming

Ruby on Rails Development     |     Perl Programming     |     C Programming Language     |     C++ Programming     |     IT Jobs

Python Programming Language     |     Laptop Suggestions?    |     TCL Scripting     |     Fortran Programming     |     Scheme Programming Language


 
 
Cervo Technologies
The Right Source to Outsource

MS Dynamics CRM 3.0

Ruby Programming Language

can someone beta-test a little Speedport W 500 reconnect-script?


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

Add to del.icio.us | Digg this | Stumble it | Powered by Megasolutions Inc