помогите разобраться со скриптом (python , Cisco :) / LANBilling script for virtual groups off)

Модератор: Модераторы разделов

Аватара пользователя
Eagleheart
Сообщения: 80
ОС: Debian Lenny,Fedora 10

помогите разобраться со скриптом

Сообщение Eagleheart »

Помогите разобраться со скриптом, есть скрипт который должен блокировать клиентов на циске (он ниже), если все делать вручную то все работает, а если запустить скрипт то нет, хотя он выполняется и ошибок невыдает
на циске должно выполняться правило ip route 10.0.0.0 255.255.255.0 Null0 permanent
помогите разобраться

--------------------------------

Код: Выделить всё

#!/usr/bin/env python2.2

# LANBilling script for virtual groups off
# 1-login of virtual group
# 2-password of virtual group
# 3-IP address of virtual group
# 4-netmask of virtual group

import sys
import telnetlib

host = "AA.BB.CC.DD" # Cisco IP adress
telnet_port=23 # Telnet port on Cisco
user = "amin" # Cisco user name
password = "*******" # Cisco user password
en_pass = "*******" # Cisco enable password
#vg_ip = sys.argv[3]
#vg_mask = sys.argv[4]
loc_ret = ""

tn = telnetlib.Telnet(host,telnet_port)

if user:
tn.read_until("Username: ")
tn.write(user + "\n")
if password:
tn.read_until("Password: ")
tn.write(password + "\n")

loc_ret=tn.read_until(">",2)
if not loc_ret:
print("No connection to host "+host+":"+repr(telnet_port)+" user:"+user+" password:"+password)
sys.exit(1)

tn.write("en\n")
loc_ret=tn.read_until("Password:",5)
if not loc_ret:
print("Cant make enable")
sys.exit(2)
tn.write("en_pass\n")
loc_ret=tn.read_until("#",5)
if not loc_ret:
print("Cant make enable with password:"+en_pass)
sys.exit(3)
tn.write("conf t\n")
loc_ret=tn.read_until("#",5)
if not loc_ret:
print("Error after conf t command")
sys.exit(4)

tn.write("ip route 10.0.0.0 255.255.255.0 Null0 permanent\n")
loc_ret=tn.read_until("#",5)
if not loc_ret:
print("Error after ip route command")
sys.exit(5)

tn.write("exit\n")
loc_ret=tn.read_until("#",5)
if not loc_ret:
print("Error after exit command")
sys.exit(6)
tn.write("write\n")
loc_ret=tn.read_until("[OK]",5)
if not loc_ret:
print("Error after write command")
sys.exit(7)
tn.write("exit\n")

tn.close
[Вот кто я!] [Манчкин 17%] [Убийца 0%] [Тусовщик 30%] [Исследователь 53%] [Узнай кто ты!]
"Машины должны работать. Люди должны думать." Девиз компании "IВМ"
Спасибо сказали:
Аватара пользователя
mitya
Сообщения: 54

Re: помогите разобраться со скриптом

Сообщение mitya »

А почему после "enable" нет "conf term"?


update:

извиняюсь, упустил
Спасибо сказали:
Аватара пользователя
mitya
Сообщения: 54

Re: помогите разобраться со скриптом

Сообщение mitya »

А выпадает ли скрипт если, допустим, дать комманду с неверным синтаксисом?

Посмотри в сторону pexpect, и вообще Expect. Идеальная вещь для подобных операций.
Спасибо сказали: