Ok.
type(bufor[0])
czy jakakolwiek inna zmienna, nic nie zwraca przy użyciu type.
Hm... Pokaz caly kod.
import sys, paramiko, re
hostname "8.8.8.8"
user = "asd"
password = "asd"
port = "123"
regtable = "costamcostam"
try:
client = paramiko.SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname, port=port, username=user, password=password)
print("zalogowano\n")
stdin, stdout, stderr = client.exec_command(regtable)
bufor = stdout.read()
f = open('test.txt', 'wb') #ignoruj mnie
f.write(bufor) #ignoruj mnie
f.close() #ignoruj mnie
temp = str(bufor)
print(temp)
temp2 = ([m.start() for m in re.finditer('mac-address=', temp)])
for x in temp2:
temp3 = str(temp)[int(x):16]
print('x:', x)
print('temp :', temp)
print('temp2: ', temp2)
print('temp3: ', temp3)
print('tempx: ', temp[21:16])
type(bufor[0])
except paramiko.ssh_exception.AuthenticationException as ssherr:
print (ssherr)
except paramiko.ssh_exception.SSHException as ssherr:
print (ssherr)
except paramiko.ssh_exception.socket.error as ssherr:
print (ssherr)
except paramiko.ssh_exception.BadHostKeyException as ssherr:
print (ssherr)
finally:
client.close()
print ("done")
Kod jak widać, jest mocno roboczy.
Mój problem zaczął się od:
bufor = stdout.read()
ponieważ spodziewałem się że będzie to string, bądź tablica znaków, a się okazuje że chyba nie jest. Stąd kolejno konwertowanie na string, następnie próbuję wyciąć interesujące mnie rzeczy, jednak bez powodzenia. Męczę się drugi dzień.
Ponad to, czytając artykuł:
Napisy (strings)
i realizując pierwszy przykład, na konsoli wypluwa mi znak, a nie bajt. W związku z czym, dalej nie rozumiem czemu print(bufor) wyświetla znaki z wyniku działania stdout.read(), natomiast, print(bufor[n]) kod ASCII.