У меня есть 2 mac-адреса, хранящихся в списке (maclist), и я сделал их «greped» из файла. Я думаю, что цикл for выполняет свою работу правильно, но в выводе ничего не печатается (iplist).
Файл содержит как mac-адреса, так и ip, поэтому с помощью mac я могу получить ip.
iplist = []
leasefile="/var/lib/misc/dnsmasq.leases"
p9 = subprocess.Popen(["cut", "-f", "2,3,4", "-s", "-d", " ", leasefile], stdout=subprocess.PIPE)
for line in p9.stdout:
for i in range(len(maclist)):
p10 = subprocess.Popen(["grep", str(maclist[i])], stdin=p9.stdout,
stdout=subprocess.PIPE)
p11 = subprocess.Popen(["cut", "-f", "2", "-s", "-d", " "], encoding="utf8",
stdin=p10.stdout, stdout=subprocess.PIPE)
for line2 in p11.stdout:
iplist.append(line2.rstrip('\n'))
print(iplist)