2 回答

TA貢獻1784條經驗 獲得超2個贊
試試這個腳本:
#!/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()
該函數run_cmd將 cmd 作為字符串,用 shell 運行它,然后解碼結果和最后一個換行符。

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