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

  1.  
  2.  
  3. #!/usr/bin/expect -f
  4. # Script written by Tim Nelson
  5. # uses tcl\expect
  6.  
  7. proc between {a b x} {return [expr {$x<=$b && $x>=$a}]}
  8.  
  9. proc address {num} {
  10. if {[between 10 249 $num]} {return [list 209 $num]}
  11. if {[between 250 489 $num]} {return [list 109 [expr {$num-240}]]}
  12. if {[between 510 778 $num]} {return [list 9 [expr {$num-500}]]}
  13. }
  14.  
  15.  
  16. spawn telnet 192.168.100.100
  17. send "trango\r"
  18. send "password ro\r"
  19. expect "New Password (4 to 16 characters):"
  20. send "passCust\r"
  21. expect "Confirm Password:"
  22. send "passCust\r"
  23.  
  24. send "password rw\r"
  25. expect "New Password (4 to 16 characters):"
  26. send "pass\r"
  27. expect "Confirm Password:"
  28. send "pass\r"
  29.  
  30. ## Prompt the user for a device number.
  31. send_user "Please enter a device number: "
  32. expect_user {
  33. -re {[0-9]+} {
  34. set device $expect_out(0,string)
  35. } -re .+ {
  36. send_user "Invalid device number.\n"
  37. send_user "Please enter a device number: "
  38. exp_continue
  39. }
  40. }
  41.  
  42. # determine ip and default gw
  43. set subnet [address $device]
  44. set ip 192.168.1.[join $subnet .]
  45. set gw 192.168.[lindex $subnet 0].1
  46.  
  47.  
  48. send "set baseid 9\r"
  49. send "set apid 1\r"
  50. send "set defaultopmode su\r"
  51. send "set suid 179\r"
  52. send "freq writescan 3 h 4 h 2 h 1 h 5 h 6 h\r"
  53. send "remarks su179\r"
  54.  
  55. send "ipconfig $ip 255.255.255.0 $gw\r"
  56. expect "save and activate ? (y/n)"
  57. send "y\r"
  58. interact
  59.  
  60.