$whois abc.com
Я хочу использовать python, чтобы нажать эту команду, а затем дать результат как строку текста. Как я могу это сделать?Как использовать python, чтобы нажать эту команду и вернуть результат?
$whois abc.com
Я хочу использовать python, чтобы нажать эту команду, а затем дать результат как строку текста. Как я могу это сделать?Как использовать python, чтобы нажать эту команду и вернуть результат?
Вы можете использовать subprocess, например:
from subprocess import Popen, PIPE
output = Popen(["/usr/bin/whois", "abc.com"], stdout = PIPE).communicate()[0]
В stdout = PIPE
силы параметров стандартный вывод должны быть записаны во временную трубу вместо консоли (если вы не хотите этого, удалите параметр stdout
).
С subprocess
.
subprocess в порядке. С другой стороны, протокол whois равен so simple, что я не понимаю, зачем использовать внешнюю команду (и зависит от ее доступности). Просто откройте TCP-соединение с портом 43, отправьте однострочный запрос и прочитайте ответы.
большинство других серверов whois или api там возвращают мусор для IP-адресов, но Linux whois является единственным, кто каким-то образом преследует ip до тех пор, пока не получит фактический whois от конечного узла. Я не уверен, что я ясно заявляю, просто хотел объяснить проблему авторов, поскольку я тоже сталкиваюсь с этим. – Max
Duplicate: http://stackoverflow.com/questions/89228/how-to-call-external-command-in-python –
Не совсем дубликат, так как вопрос, который вы упомянули, является GENERIC, в то время как этот довольно специфический и есть лучшие способы сделать whois, чем вызвать внешнюю команду. – bortzmeyer