Script to disconnect Linksys WRT54G wireless router on Windows

Is there an existing wireless router linksys WRT54G script out there that will run from Windows XP and hit the 'connect' & 'disconnect' button?

For example, I'd like to disconnect my wireless router (firmware 1.02.0) by clicking on a single shortcut to replace the multiple button presses today.

That shortcut would (perhaps using wget or some other idea):

  1. Connect to the wireless router IP address (https://192.168.0.1)2. Log in with a blank username & enter 'letmein' as the password
  2. Navigate to the "Status -> Router" Linksys WRT54G web page
  3. Press the "Login Status = Disconnect" button

A similar shortcut would reconnect on demand.

Is "wget" the best way to accomplish this?

I can't believe I'm the first person to need this so some kind wireless guy must have done this already. I googled for "linksys wrt54g connect script" and found something called "slackware" in addition to "wget" but I'm not a programmer so I would like to start with an existing script that does SOMETHING like hit any button on the Linksys WRT54G router. Once I have that, I can probably modify that program to do what I want.

I did find

formatting link
but I did not understand most of the detail (I have a lot to learn).

Does anyone have a script that runs on windows that will connect to https://192.168.x.y to then hit a button on the Linksys WRT54G router?

Reply to
Wilson
Loading thread data ...

Hi Routers are propriety devices there is No one universal way to control them. As a result you cab expect Windows as an OS to be programmed to control every Independent 3rd party device. If it really important you can learn simple scripting, or pay some one to do it. If you just want to disconnect a computer from the Router you can use the IPCONFOG /release command.

formatting link
(MVP-Networking).

Reply to
Jack (MVP-Networking).

Wilson hath wroth:

Sure. There are several Windoze "automation" tools. The one I like to use is the ancient "Macro Recorder" from Windoze 3.1. However, I'm not going to recommend this because of its age.

More modern incantations can be found at: ($23)

and so on. Search Google for "macro recorder" or "keystroke mouse recorder". Lots to choose from.

You start the recorder, do whatever it takes with your mouse and keyboard, stop the recorder when done, and save the macro. If you want to repeat it again, just run the macro. Simple.

Another way to do this is to install DD-WRT or OpenWRT on your WRT54G, and use various shell or expect scripts to turn the router on and off. The command to turn on/off the WAN connection could be: ifconfig eth1 up ifconfig eth1 down or something like that.

Reply to
Jeff Liebermann

Hi Jeff, Do you think this perl script modified to hit the disconnect & connect button will work? I'm googling for just how I would change the script below.

So far, I see the following changes needed:

  1. I will google to see how to give the "null" set (blank?) as a login
  2. I need to figure out how to press the disconnect button

Before I dig further, is this script below a good place to start in order to create a Windows script that disconnects the Linksys WRT54G wireless router from the ISP from a wireless portable PC client?

Wilson

#!/usr/bin/perl -w use strict;

# check out this documentation: # first, the cookbook #

formatting link
the LWP reference #
formatting link
oh but this is JUST what we want #
formatting link
my $adr='https://192.168.0.1/Services.asp'; # talk to this my $user='root'; my $pass='letmein';

# make a User Agent use LWP::UserAgent; my $ua = LWP::UserAgent->new;

# make a request object # fill in the button name and value from # looking at the page source. # DD-WRT puts out a complicated page with Javascript that # I don't understand how to deal with, so this doesn't work, # but in principle (if I knew what to put in for action and reboot) # it should. my $req = HTTP::Request->new(POST => $adr, ['action','reboot']);

$req->authorization_basic($user, $pass);

# send the request my $result = $ua->request($req);

# print the result print $result->as_string;

Reply to
Wilson

Bearing in mind I don't know perl, in the previous perl script to press the disconnect button on the Linksys WRT54G router ... do these changes seem correct to you perl programmers?

-----

  1. Log in from Windows to the Linksys WRT54G router with a blank username and a password of "letmein". INSTEAD OF:

I WOULD USE: my $user=''; $pass='letmein';

-----

  1. Navigate to the Linksys WRT54G "Status -> Router" web page. INSTEAD OF:

I WOULD USE: my $adr='https://192.168.0.1/StaRouter.htm'; # talk to this

-----

  1. Press the disconnect button on that Status->Router web page. INSTEAD OF:

I WOULD USE: my $req = HTTP::Request->new(POST => $adr, ['action','disconnect']);

-----

  1. Reconnect after a period of time, say 5 seconds. INSTEAD OF: my $req = HTTP::Request->new(POST => $adr, ['action','disconnect']); I WOULD USE: my $req = HTTP::Request->new(POST => $adr,

----- ['action','connect']); Since I don't know perl (nor even how to run perl on Windows XP), I wish to ask before trying to see if the approach seems like it will work for you.

Meanwhile, I'll try to get the script to work (so far, when I click on my modified script, see below, it just brings up Notepad).

Wilson

#!/usr/bin/perl -w use strict;

# check out this documentation: # first, the cookbook #

formatting link
the LWP reference #
formatting link
oh but this is JUST what we want #
formatting link
# my $adr='https://192.168.0.1/Services.asp'; # talk to this my $adr='https://192.168.0.1/StaRouter.htm'; # talk to this my $user=''; # my $pass='mypassword'; my $pass='letmein';

# make a User Agent use LWP::UserAgent; my $ua = LWP::UserAgent->new;

# make a request object # fill in the button name and value from # looking at the page source. # DD-WRT puts out a complicated page with Javascript that # I don't understand how to deal with, so this doesn't work, # but in principle (if I knew what to put in for action and reboot) # it should. # my $req = HTTP::Request->new(POST => $adr, # ['action','reboot']); my $req = HTTP::Request->new(POST => $adr, ['action','disconnect']);

# I need to figure out how to wait 5 seconds in perl; then reconnect

my $req = HTTP::Request->new(POST => $adr, ['action','connect']);

$req->authorization_basic($user, $pass);

# send the request my $result = $ua->request($req);

# print the result print $result->as_string;

# The end of a perl script to run on Windows to tell the Linksys WRT54G # router to disconnect from the ISP; then after 5 seconds, to reconnect.

Reply to
Wilson

Cabling-Design.com Forums website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.