в telnet через Putty я пишу команду: ip link show eth0 | awk '/ether/ {print $2}'
и у меня есть MAC машины
я пытаюсь получить MAC многих машин и сохранить их в файле, но когда я использую telnetlib, то получаю команду и результат команды.
import sys
import telnetlib
user = "root"
password = "root"
file = open("input.txt", "r")
for line in file:
line = line.rstrip("\n")
tn = telnetlib.Telnet(line)
tn.read_until(b"login: ")
tn.write(user.encode('ascii') + b"\n")
tn.read_until(b"Password: ")
tn.write(password.encode('ascii') + b"\n")
tn.write(b"ip link show eth0 | awk '/ether/ {print $2}'\n")
tn.write(b"exit\n")
#output = tn.read_until(b"exit\n").decode('ascii')
output = tn.read_all().decode('ascii')
#print(output)
for i in output.split("\n"):
print(i)
stdout=open(line + ".txt","w")
stdout.write(output)
что я ожидаю:
02:45:4b:52:0a:04
но я получаю:
ip link show eth0 | awk '/ether/ {print $2}'
exit
root@cpu_ekor:~ ip link show eth0 | awk '/ether/ {print $2}'
02:45:4b:52:0a:04
root@cpu_ekor:~ exit
logout
или иногда:
root@cpu_ekor:~ ip link show eth0 | awk '/ether/ {print $2}'
02:45:4b:52:0a:04
root@cpu_ekor:~ exit
logout