2 回答

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個(gè)贊
試試這個(gè)腳本:
#!/usr/bin/env python3
import os
import subprocess
def run_cmd(cmd):
return subprocess.run(cmd, capture_output=True, shell=True).stdout.decode().strip()
def quiet_scan():
address = run_cmd("ip addr | grep 'inet 10.*' | awk '{print $2}'")
print(address)
final = run_cmd(f"nmap -sS {address}")
print(final)
quiet_scan()
該函數(shù)run_cmd將 cmd 作為字符串,用 shell 運(yùn)行它,然后解碼結(jié)果和最后一個(gè)換行符。

TA貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個(gè)贊
我認(rèn)為subprocess.run使用capture_outputflag 在這里會(huì)很好用:
import subprocess
result = subprocess.run(["nmap", "-sS"], capture_output=True)
print(result.stdout)
result將保存運(yùn)行進(jìn)程的結(jié)果,包括退出代碼和寫(xiě)入流的內(nèi)容。如果您想要的數(shù)據(jù)是nmap打印到 的數(shù)據(jù)stdout,您可以簡(jiǎn)單地檢查該屬性。
添加回答
舉報(bào)