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