Я пытаюсь найти все компьютеры Windows в сети.Каждый раз, когда программа находит в сети работающий компьютер, она открывает новый файл для этого компьютера.В файле я хочу увидеть имя машины и ее IP-адрес.
Как только я закончу с этим, я хотел бы зарегистрировать установленные приложения на определенном компьютере в файле этой машины,именно поэтому у меня есть новый файл для каждого компьютера, который находит программа.
Однако, когда я запускаю его, машина каждый раз получает одно и то же имя.Я попытался использовать сокет импорта, но всякий раз, когда я использую любой метод, который идет с ним, я получаю сообщение об ошибке, говорящее, что у сокета нет атрибута.Мне нужно из импорта сокетов *, чтобы мой метод is_up работал.
Вот мой код:
from socket import *
ipa = '192.168.1.'
def is_up(adr):
s = socket(AF_INET, SOCK_STREAM)
s.settimeout(0.01)
if not s.connect_ex((adr, 135)):
s.close()
return 1
else:
s.close()
def main():
for i in range(1, 256):
adr = ipa + str(i)
if is_up(adr):
f = open("Machine " + str(i) + ".txt", "w+")
f.write('%s \t- %s \n' % ("Name: " + gethostname(), adr))
if is_up(adr):
print(gethostbyaddr(adr))
main()
Редактировать : я поместил новый код здесь, чтобы отразитьиспользование gethostbyaddr(adr)
.Я все еще получаю следующую ошибку:
[Errno 11004] хост не найден
def main():
for i in range(1, 256):
adr = ipa + str(i)
if is_up(adr):
print(gethostbyaddr(adr))
Traceback :
Traceback (most recent call last):
File "C:/Users/eread/PycharmProjects/SoftwareScanner/SoftwareScanner", line 30, in <module>
main()
File "C:/Users/eread/PycharmProjects/SoftwareScanner/SoftwareScanner", line 20, in main
print(gethostbyaddr(adr))
socket.herror: [Errno 11004] host not found