Найти - Пользователи
Полная версия: telnetlib, выборка из вывода
Начало » Network » telnetlib, выборка из вывода
1
Phoen
Есть скрипт залезающий телнетом на циску и делающий там

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?
bazooka
при помощи того же data.split() выдергивать еще и Vi и сравнивать
Phoen
bazooka
при помощи того же data.split() выдергивать еще и Vi и сравнивать
Vi то сравнить не проблема, а вот как вытащить соответствующий конкретному двузначному Vi мак что то не придумывается. Единственная мысль - записать это всё в текстовый файл, построчно его считывать и как то отдавать строку с вхождением.
bazooka
а щяс оно не построчно обрабатывает?
Phoen
нет, когда делалось предпологалось что двузначных Vi не будет, а с трёхзначные возвращают лишь одно значение.

Значит единственный вариант писать все файл и потом тупо работать со строками?
bazooka
никогда небывает единственного варианта
o7412369815963
# 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
такое надо?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB