Posted to tcl by mjanssen at Wed Nov 07 22:58:28 GMT 2007view pretty


#!/usr/bin/expect -f
# Script written by Tim Nelson
# uses tcl\expect

proc between {a b x} {return [expr {$x<=$b && $x>=$a}]}

proc address {num} {
  if {[between 10 249 $num]} {return [list 209 $num]}
  if {[between 250 489 $num]} {return [list 109 [expr {$num-240}]]}
  if {[between 510 778 $num]} {return [list 9 [expr {$num-500}]]}
}

 
spawn telnet 192.168.100.100
send "trango\r"
send "password ro\r"
expect "New Password (4 to 16 characters):"
send "passCust\r"
expect "Confirm Password:"
send "passCust\r"
 
send "password rw\r"
expect "New Password (4 to 16 characters):"
send "pass\r"
expect "Confirm Password:"
send "pass\r"
 
## Prompt the user for a device number.
send_user "Please enter a device number: "
expect_user {
    -re {[0-9]+} {
        set device $expect_out(0,string)
    } -re .+ {
        send_user "Invalid device number.\n"
        send_user "Please enter a device number: "
        exp_continue
    }
}

# determine ip and default gw
set subnet [address $device]
set ip 192.168.1.[join $subnet .]
set gw 192.168.[lindex $subnet 0].1

 
send "set baseid 9\r"
send "set apid 1\r"
send "set defaultopmode su\r"
send "set suid 179\r"
send "freq writescan 3 h 4 h 2 h 1 h 5 h 6 h\r"
send "remarks su179\r"
 
send "ipconfig $ip 255.255.255.0 $gw\r"
expect "save and activate ? (y/n)"
send "y\r"
interact