Automatic Router Scripting Engine

an image

aka. A.R.S.E.

This is A.R.S.E., the 'Automatic Router Scripting Engine'.

A.R.S.E. is a program which automatically sends command scripts (rules) to your router (or IP Cam or whatever). Essentially, it does background, scriptable, automatic telnet. You can setup or tweak your router with just a couple of clicks!

Note: A.R.S.E. now works on ALL routers that support telnet!

NOTE: The new version is ALPHA software. Work and testing is still required. Bugs need to be found, reported and squished. Feel free to help!

For testers..

The main things you need to know:

When you first launch A.R.S.E. it creates a folder in your user data folder, and creates another inside that for a default router (as well as its default ini file with global settings in the [ARSE] ini section). Inside the default device folder, is a router.ini file, with settings and presets for that specific device.

C:\Users\<YOUR-USER-NAME>\AppData\Roaming\corz\ARSE\arse.ini
C:\Users\<YOUR-USER-NAME>\AppData\Roaming\corz\ARSE\default
C:\Users\<YOUR-USER-NAME>\AppData\Roaming\corz\ARSE\default\router.ini

You can rename "default" to whatever you like, and create other folders next to it, for other devices, e.g..

C:\Users\<YOUR-USER-NAME>\AppData\Roaming\corz\ARSE\DD-WRT v24
C:\Users\<YOUR-USER-NAME>\AppData\Roaming\corz\ARSE\Voyager 205
C:\Users\<YOUR-USER-NAME>\AppData\Roaming\corz\ARSE\DSL-2680

These devices are then available from a drop-down menu.

Actually, for now you will need to set the name of your selected router in the ini file, e.g..

current_router="DSL-2680"

Inside router.ini you can have three sections. A main [ARSE] sectiton which can override any global prefs for that device, asd well as three other sections. Easier to give you an example. This is for a D-Link DSL-2680:

[ARSE]
autosave_prefs=1
autoupdate_list=true
update_frequency=5
permanent_delete=false
log_level=2
confirm_drop=true
show_output=true
sleep_time=300
max_response=64

[router]
ip=modem
user=
password=MyPa55word
reboot_string=""
auth_checkstring="Password:"
login_chunks=2
line_feed=LF

[view]
width=375
height=247
x=1242
y=197
prog_x=518
prog_y=8
show_log_x=1258
show_log_y=45
show_log_w=664
show_log_h=999

[selected]
DIAGNOSTICS=True

Some of these things can be set from the GUI, but many cannot. Have fun!

The documentation below is for the old version. New documentation is coming.

an image

As well as its simple graphic interface, A.R.S.E. can operate command-line mode, so you can click a script anywhere and have it sent directly to the router. You can also drag-and-drop scripts directly onto A.R.S.E. - or a shortcut to it - and they will be sent immediately to the router via background telnet.

The scripts themselves (along with your login data, etc) live in the "Viking Router" folder..

C:\Documents and Settings\**YOU**\Application Data\corz\Viking Router

If you opt to have Start Menu shortcuts installed, there will be a shortcut to your scripts folder in your Start Menu, along with the usual application shortcut, uninstall, etc. You can also open your scripts folder from the A.R.S.E. scripts concept menu (context, right-click, whatever you call it), though as you can add and delete scripts from right from within A.R.S.E., there shouldn't be much need to interact with the folder manually.

Note: Although designed for the BT Voyager 205 (and myriad clones; CastleNet AR502, Dynalink RTA100, RTA500-D51, GlobespanVirata, Netgear DM602, Solwise SAR100 and SAR130, etc) this will likely work with many other routers with simple telnet protocols, only the scripts will be different.

command-line mode..

A.R.S.E. Document Icon arrow icon A.R.S.E. Application Icon arrow icon Router Icon

A.R.S.E. accepts script on the command line, which means you can drag-and-drop scripts onto the A.R.S.E. icon and A.R.S.E. will telnet them immediately to your router. Or you can simply click a script anywhere in explorer and it will be sent to your router. In a similar way, you can schedule script to be run at any time with, perhaps the Windows® built-in "Scheduled Tasks", or some other scheduling/macro software. There's no need to leave A.R.S.E. running, but if you do, it uses very little resources, and can be toggled by its tray icon (left-click).

Note: in command-line mode, you will not be asked for any login preferences - unless the router.ini file is missing, i.e.. the first time you run A.R.S.E..

or GUI..

A.R.S.E. Icon  
If A.R.S.E. is launched without any scripts (i.e.. you click the application, or a shortcut on your desktop, Start Menu item, etc.),
ARSE Icon  

it will present you with its simple graphic user interface and your current script collection. I put more controls into this as I go along, so check back often for the latest version.

In GUI mode, you can drag and drop scripts into the list, to add them to your collection (one at a time), and also delete scripts from your collection, as well as do a few more things; right-click the list.

If no scripts are available, A.R.S.E. creates one called basic_stealth.arse which contains only the two basic Viking Router stealth rules, as found on the main Voyager 205 page. A.R.S.E. needs at least one script to function.

It's okay to run scripts from the command-line or schedule while the A.R.S.E. GUI is running, they won't interfere with each other.

ARSE Icon  

simply click, and go..

Run the installer and everything will be setup for you, with optional Start Menu items, file associations, cute icons, add/remove entry, etc., etc., just click-and-go. Once installed, the installer will also act as an uninstaller/reinstaller should you ever need that facility.

Note: You can also use the installer for your own installations, if you do that sort of thing, check the "setup.ini" file for more details (you can also alter most of the parameters of your A.R.S.E. install by hacking this file, too, if that's your bag)


Scripts are available for all sorts of things, mainly port-forwarding rules for p2p applications, ftp servers and the like, though technically, any valid command can be placed in an A.R.S.E. script. Feel free to mail me your own pet scripts, and I'll chuck them here for all to use.

for scripters..

As mentioned, A.R.S.E. scripts are simply lists of valid router commands, the exact same commands one would enter in a telnet session. A.R.S.E. scripts can also contain comments. Any line beginning with semicolon ";" or hash "#" (for compatibility with "commitedcfg.cfg" and similar files) is considered a comment.

The line format can be peecee (CRLF - "\r\n") or UNIX (LF - "\n") line breaks, but NOT Mac (CR - "\r") sorree! - if your script jumps immediately to 100% progress, check your line-breaks. The commands can have spaces after them, or not, contrary to popular voodoo myth.

You can also embed "progress directives", like this..

[I am a progress directive]

which will be used as the text under the progress bar while the script runs. So, if you have a big script, you can keep users informed about what section is currently being processed. Peek inside "Basic-Voyager-205-setup.arse" with any decent text editor for example usage.

Note, A.R.S.E. will not commit at the end of a script. If you want your rules to "stick", add the commit command to the end of your script. If your script requires that the router do a reboot at the end of you script, add reboot at the end of your script (after commit). Don't worry about multiple scripts sending multiple commit or reboot commands (and the long wait that entails), if there are multiple scripts to send, A.R.S.E. stores these commands and performs them only once, right at the end. If a reboot is required, A.R.S.E. will warn you first, and give you the option to defer that, if needed.

ARSE Icon  

installer notes..

I've done a fair amount of work on the installer (because I intend to re-use it), improving its intelligence, error-checking, and expanded the setup.ini to include some handy new options, mostly for those wishing to use the installer to install their own applications, but also for folk requiring unusual setups or custom options.

ARSE Icon  

The main new setting is the ability to switch from a zip to a plain folder install. Simply remove the ".zip" from the archive=files.zip directive, and the installer will treat it as a "raw" install, i.e. plain file copying.

ARSE Icon  

The zip install should work in 99% of situations (most folk have admin accounts on their peecees), but if it doesn't, one simple edit to the setup.ini enables you to install from an unpacked folder - use your regular unzipper; Winrar, Winzip, whatever) to unpack the archive before running the installer - then you get all the usual install goodies; right-click menus, add/remove option, Start Menu items, etc.

I quite like that it needs an admin to intall it, prevents casual users taking control of your router with a couple of clicks.

For itstory, changes, features, etc, scroll down.

A.R.S.E. Changes..

Automatic Router Scripting Engine

I thought I'd better start keeping notes. 
Take shape, it's starting to. Yes.

itstory..


1.8.1
fixed the major bug with new installs. if you were upgrading, everything was
fine. if it was your first install, sorree!

fixed the minor bug where the resolved IP address label slightly overlapped
the Ping indicator, making it tricky to click (you can click the icon to 
retry the ping, you know).

added a preference for 'permanent delete'. check this and when you delete
scripts from your collection, they will be permanently deleted from your
scripts folder, as opposed to sent to the recycle bin (the default). If you 
had manually set this to true (as per earlier tip), either change it to "1" 
(no quotes) in your ini, or check the preference in the prefs tab (a better 
idea!)


1.8
ARSE now sports a new tabbed interface. the second tab is for preferences,
I have more tabs in mind, if time permits.

When hidden (left-click on tray icon) ARSE no longer pops up a "Success!!!"
dialog for you to click at the end of a script run, but instead puts "success!!!"
in the progress bar for a moment, and then promptly disappears. (the dialog
times out after a few seconds, but still, a background task should be that)

This also applies to scripts run from the command-line.

I've begun adding tool tips to the controls, I finally found the function! 

	GUICtrlSetTip()	<- whoever named this function needs a kicking!

In the address preference, if you enter a "name", it will be automatically
resolved to its IP address, which will be displayed on the right hand side
of the input (as soon as you leave that input). it is still saved as a name, 
this is simply for your information. While ARSE is running, you could use 
this facility to get the IP address of any internet name (enter the name, 
then click on the octet readout, it will update and ping the host for you -
if you use autosave, remember to put back your router's address afterwards!)

Added a cute "tick" or "cross" icon for the DNS check. This was more trouble 
than it was worth! Looks neat, though. (while it's checking a "?" is displayed)
All these icons are stored inside arse.dll, ensure you either run the installer
(do a reinstall with your new download) or else copy over the new arse.dll if
you are doing things manually.

you can click on the centre of the icon to ping the host again

you can right-click on the resolved IP address for an option to copy it to 
the clipboard


If your login fails, ARSE will pop up the login details dialog boxes for you
to correct it. If you are running a script from the command-line, ARSE will
also try a second time to send your commands.


[installer]
Fixed the bug where the icon refresher icon in the Start Menu wasn't being
deleted. 


1.7.5.1
fixed the bug where the address (stored internally as an octet) would be
displayed as an octet in the login preferences, even when you had previously
saved it as a "name". (mine is "router", which resolves to my router's IP)


1.7.5
Added tray menu items for "Run Selected Scripts" and "Run ALL Scripts"
so you can do these things when the main window is hidden (left-click on tray)

Added a tray menu of ALL the scripts in your collection, you can run
any script while ARSE is hidden by simply selecting it in the tray menu. This 
list changes dynamically as you add and delete in the main gui.

Changes to the position of the progress dialog are now remembered
Thereafter, this position will also be used for the brief "login" window.

I removed that rogue "esc" key capture thing.

fixed the bug where as soon as one reboot is required, arse will keep bugging
you to reboot every time you send a script, until you quit. Now arse will only
bug you until you do the reboot, then it will stop, until another is required.


ARSE now looks at the *last* parameter on the command line for the path to the
script. this won't affect anyone becasue we haven't started adding switches yet,
but if you plan to create some custom actions, keep this in mind.


1.7.4
Your *current* selection is now saved and restored when you drag in a new script, 
though, as ever, on exit, it's the last *successfully sent* configuration that is 
saved (or, if that was unsuccessful, the last one you *attempted* to send) in other 
words, just messing around with the selection won't affect your "last known good" 
selection, and dragging *new* scripts into ARSE will affect *neither*!

Added a concept menu to the list. From there you can (so far, and working fine)..

	* Resfresh the scripts list.
		
		If you add a pile of scripts to your script folder manually, you can do
		this to have them show up in your collection.

	* Open the scripts folder.
		
		In Explorer, for if you ever need to interact manually with your scripts.
		Or else a handy way to get to the ini file (open, then hit backspace "<-" 
		which surely is programmed into your middle mouse button! ;o)

	* Delete selected scripts (from your scripts folder)

		Note, ARSE needs at least one script to be more than just a pretty GUI, so 
		if you delete *all* your scripts, ARSE will re-create the default stealth
		script "for you".

		Note, by default, scripts are deleted to your recycle bin. You can change
		that by hacking the ini file, in the [ARSE] section (if that doesn't exist,
		create it)..

			[ARSE]
			permanent_delete=true

		I might do a prefs page yet, and a switch for this.


1.7.3
You can now drag and drop scripts onto ARSE and they will be added to your sripts
folder (and the list).

Switched mode of operation to "Mode 1", event mode, mainly to get above working.
This is probably a better way of working, regardless.


1.7.2
cleaned up some of the legacy code structures lying around (some!)

added a (right-click) tray menu with an "about" item, I forgot about an about box!
regular left-clicking on the tray icon toggles the main window.



1.7.1

Your last used selection is now remembered in the ini file, for next time. 
note: by "used", I mean the last set you actually sent to the router.

Between the saving and the "toggle" function, it's possible to run a nice big
on/off switch, with the regular and "remove" versions of your scripts.

I moved ARSE's application data folder into the "corz" folder, best for everyone.
If possible ARSE will move your old folder to its new location automatically,
though it will err on the side of caution, and you may have to move your scripts
over by hand.

ARSE now only performs only one commit per operation, so if a dozen scripts all 
needa "commit" command, ARSE performs it only once, at the end. saves 1.8 
seconds per script.


1.7

Incorporated some stuff I learned making the installer.

Added a list menu of available scripts. Now you can select any number of scripts to 
run. There's also an "all" button, which unsurprisingly, runs all available scripts.

Added "clear" and "toggle" controls, for rapid scripts selection.

Changed the ini file name from "router.ini" to "arse.ini", as it now holds non-router 
prefs. old ini files will be renamed automatically, at least for the next few 
versions, they will.

Window size and position is now saved (in arse.ini) and restored on launch.

ARSE won't ask for login details if an ini file exists, you did that already.

Added an "edit login details" button, should you wish to change the details later.

When multiple scripts are being processed, a reboot command is stored and sent only 
at the end of the sequence, rather than "when it comes", which caused multiple 
selections to only get partly sent. This would be a bug-fix if I hadn't fixed it 
before I even encountered it.

Fixed a few minor bugs.


1.6.5
minor tweaks and adjustments, compiler directives, etc.

1.6.4 
Added a HotKey (Esc) that you can use to exit Arse at any time.

Improved name resolution handling.

1.6.3
ARSE will now resolve host "names", so if you have a local host name for your router
(mine is called "router") you can use that in the address field.

ARSE will now recognize a "reboot" command in a script, and warn the user of the 
impending reboot, as well as giving them the chance to cancel it, if they really must 
(important transfer in progress, perhaps).

Removed the old one-time reboot warning (no need now).

Some GUI and progress bar improvements.

1.6.2..
You can now enable "progress directives" inside your scripts. These look exactly
like ini section header..

[I am a progress directive]

Simply, when Arse finds one of these, it will use the text within for the current
progress message, so if you have a long script with many sections, you can keep
the user informed about which section of the script is currently being excecuted.

Here's an example..

	[disable UPnP]
	; disable nasty UPnP..
	modify upnp cfg  nbstatus disable 

Don't overdo these because a) if there are too many, they will flash before the 
users' eyes too quickly to read, and b) they are classed as *real* lines when 
calculating the progress bar, so it would become (albeit only slightly) inaccurate.

See inside "Basic-Voyager-205-setup.arse" for more examples.

note:	Arse no longer performs "commit" at the end of the run. If you want your
		rules to be permanent, add "commit" to the end of your script.

1.6..
Arse now accepts scripts on the command line. In other words..

	a)	you can drag-and-drop script files onto rah.exe (or a shortcut 
		to it), and they will be sent directly to the router, and..

	b)	you can script your ARSE!

When using the command-line or drag-and-drop, arse doesn't arse about 
asking for your router login details (unless its ini is missing), just 
sends the commands immediately. You still get a nice progress bar, though.


<=1.5..
private builds.

<=1.0

First there was a shell script for Linux called "RAD". It removed those 
nasty rules the Voyager 205 inserts at bootup. (or rather, BT inserted!) 
It's still around, works great, if you have a Linux box handy.

Then there was a Windows batch file, because, well, most folk still use 
windows. It worked, but it had problems. The main one being that it spawned
a telnet window and "sent" key commands to it. If the user were to shift
focus to a different window, bad things happened, like launching infinite
copies of the same batch file. It came with a big warning.. 

	STAND BACK FROM THE COMPUTER!!! TOUCH NOTHING!!

But folk still did, and bad things happened.

RichE did a nice GUI version of this, which was cooler than the batch file
but still suffered the same problems, sending keys to windows. But through 
this I was introduced to AutoIt proper. Thanks RichE!

First it was a GUI version of RAD, then also a "RAH" "H" for "hacking" 
because it could send commands other than the original "Router Automatic
Deletions", and could be packaged as a "one-shot" app that could setup
an application for someone. this lasted about two days.

RichE and I grappled with the code and ideas for a few days, until I 
wrestled it off him for my first AutoIt project..

ARSE 1.0 combined the functions of both applications and a whole lot more!

and finally..

All this work is free as in beer, so help yourself!

And when you save yourself some precious hours, days and weeks, maybe you could buy me a beer! ..

Have fun!

;o) Cor

Before you ask a question..

PLEASE remember, this page is about ARSE, which is FREE!
If you want to ask questions about routers, go here.


previous comments (four pages)   show all comments

Jay - 30.07.08 2:08 pm

Nice site useful smiley for :)


mido0109850352 - 04.08.08 10:59 am

nice man


muerte - 13.04.09 12:36 pm

yeahhhhhhhh


BHOB - 06.05.09 7:17 pm

Where on earth is the download link???


cor - 06.05.09 7:36 pm

The link is hidden away at the very top of the page.

;o)
(or


tapenade - 11.06.09 10:41 am

mucho gracias


saayacoolu - 15.08.09 12:17 pm

so nicesmiley for :roll:smiley for :roll:smiley for :roll:


Call of Duty - 24.05.10 2:31 am

i love this program but i can't seem to get a script working for Call of Duty - Modern Warfare 2 has any one made a script they might want to share?


Peter - 07.04.12 11:53 am

Please let me have a listing of related gear 2 A R S E


lorelle - 07.04.12 12:00 pm

smiley for :idea:smiley for :erm:smiley for :eek:


Peter - 17.05.12 11:10 am

Hello everybody

Is there some way how to detect that script in command-line does its job, or not? Some %ERRORLEVEL% mechanism used for command-line?
Yes, i know, that there is no way how to parse output from telnet. I need only information about succesfully connecting and ending telnet session...

Thanks

Peter


First, confirm that you are human by entering the code you see..

(if you find the code difficult to decipher, click it for a new one!)


Enter the 5-digit code this text sounds like :

lower-case you, Upper-Case Pee, wun, lower-case aye, Upper-Case Why


 

Welcome to corz.org!

If something isn't working, I'm probably improving it, try again in a minute. If it's still not working, please mail me!