Форум сайта python.su
Есть скрипт залезающий телнетом на циску и делающий там
tn.write(“sh pppoe session | include %s\r” %Vi)
После чего при помощи data.split() выдергивается мак адрес юзверя. Если кто не знает вывод этой команды на циске в идеальном случае выглядит приблизительно так:
>sh pppoe session | inc Vi124
83 18658 f07d.684a.0f39 Gi0/1.1025 Vt1 Vi124 PTA
Однако если Vi двузначные, то найдётся также и информация о пользователях в Vi которых есть совпадения, тоесть примерно так:
sh pppoe ses | inc Vi10
439 18770 0021.9783.d343 Gi0/1.1024 Vt1 Vi103 PTA
1380 18290 0019.2144.4719 Gi0/1.1026 Vt1 Vi100 PTA
810 18766 000f.eabf.18ca Gi0/1.1027 Vt1 Vi104 PTA
1162 18093 e0cb.4edc.82e7 Gi0/1.1028 Vt1 Vi107 PTA
545 18071 001d.7d7c.51ba Gi0/1.1028 Vt1 Vi106 PTA
460 17411 0006.4f6b.0324 Gi0/1.1030 Vt1 Vi101 PTA
437 18758 0080.483a.dd16 Gi0/1.1033 Vt1 Vi109 PTA
1309 17970 e0cb.4e5e.c7af Gi0/1.1054 Vt1 Vi10 PTA
Может у кого нибудь есть мысли касательно того как выцепить мак именно принадлежащий двузначным Vi?
Офлайн
при помощи того же data.split() выдергивать еще и Vi и сравнивать
Офлайн
bazookaVi то сравнить не проблема, а вот как вытащить соответствующий конкретному двузначному Vi мак что то не придумывается. Единственная мысль - записать это всё в текстовый файл, построчно его считывать и как то отдавать строку с вхождением.
при помощи того же data.split() выдергивать еще и Vi и сравнивать
Отредактировано (Янв. 20, 2011 17:26:43)
Офлайн
а щяс оно не построчно обрабатывает?
Офлайн
нет, когда делалось предпологалось что двузначных Vi не будет, а с трёхзначные возвращают лишь одно значение.
Значит единственный вариант писать все файл и потом тупо работать со строками?
Отредактировано (Янв. 20, 2011 17:40:09)
Офлайн
никогда небывает единственного варианта
Офлайн
# coding: utf8
data = """ 439 18770 0021.9783.d343 Gi0/1.1024 Vt1 Vi103 PTA
1380 18290 0019.2144.4719 Gi0/1.1026 Vt1 Vi100 PTA
810 18766 000f.eabf.18ca Gi0/1.1027 Vt1 Vi104 PTA
1162 18093 e0cb.4edc.82e7 Gi0/1.1028 Vt1 Vi107 PTA
545 18071 001d.7d7c.51ba Gi0/1.1028 Vt1 Vi106 PTA
460 17411 0006.4f6b.0324 Gi0/1.1030 Vt1 Vi101 PTA
437 18758 0080.483a.dd16 Gi0/1.1033 Vt1 Vi109 PTA
1309 17970 e0cb.4e5e.c7af Gi0/1.1054 Vt1 Vi10 PTA"""
for s in data.splitlines():
d = s.split()
print d[5],' = ',d[2]
Vi103 = 0021.9783.d343
Vi100 = 0019.2144.4719
Vi104 = 000f.eabf.18ca
Vi107 = e0cb.4edc.82e7
Vi106 = 001d.7d7c.51ba
Vi101 = 0006.4f6b.0324
Vi109 = 0080.483a.dd16
Vi10 = e0cb.4e5e.c7af
Офлайн