Играли с этим. Еще не очистили его. Это в основном делает то, что делает nslookup. Принимает (или несколько) имя хоста из текстового файла и возвращает соответствующий адрес IP.Извлечение определенных данных из нескольких строк
def getIPAddresses(file):
emptyList = []
someString = ".com"
with open(file, "r+") as output:
for line in output:
emptyList.append(line)
my_new_list = [x.strip() + someString for x in emptyList]
return(my_new_list)
def lookup():
try:
while True:
enterSomething = input("Enter something: ")
if os.path.exists(enterSomething):
for n in getIPAddresses(enterSomething):
ip_info = socket.getaddrinfo(n, 80)
b = list(["nslookup of " + str(n) +"\n"] + ip_info +(["\n" + "Result of " +str(n)]))
values = ''.join(str(v) for v in b)
abc = values+ "\n"
print()
print(abc)
break
elif not os.path.exists(enterSomething):
print("No such file or directory " + str(enterSomething))
except(UnicodeError):
print("")
Так что, если у меня был текстовый файл со следующим:
www.google
www.espn
было бы вернуть
nslookup of www.google.com
(<AddressFamily.AF_INET: 2>, 0, 0, '', ('172.217.1.68', 80))(<AddressFamily.AF_INET6: 23>, 0, 0, '', ('2607:f8b0:4006:808::2004', 80, 0, 0))
Result of www.google.com
nslookup of www.espn.com
(<AddressFamily.AF_INET: 2>, 0, 0, '', ('199.181.133.5', 80))
Result of www.espn.com
Мой вопрос заключается в том, что есть способ, я могу только извлечь соответствующий ip-адреса, такие как 172.217.1.68
и 2607:f8b0:4006:808::2004
для www.google.com и т. д.?
Как насчет напечатать только информацию сокета, а не делать все это конкатенация строк? –