gpt4 book ai didi

python - 有没有办法在 python 脚本中执行 arp -a cmd 命令?

转载 作者:行者123 更新时间:2023-11-30 22:57:09 24 4
gpt4 key购买 nike

我想获取所有连接到网络的设备的 MAC 地址。 [在脚本中 - 所有 Windows 环境]

我决定使用 python 来实现这一点。我已经使用 nmap 来实现它。

import nmap
nm = nmap.PortScanner()
nm.scan('127.0.0.1', '22-443')
#nm.scan(hosts='192.168.1.0/24', arguments='-n -sP -PE -PA21,23,80,3389')
nm.scan(hosts = '192.168.1.0/24', arguments = '-n -sP -PE -T5')
for host in nm.all_hosts():
mac = nm[host]['addresses']['mac']
print("mac " + mac)

[这种方法的问题是,有时它会错过一些设备。意义,如果有 5 个设备连接到路由器,并且我第一次运行该脚本,它将仅返回一个或两个设备。下次我运行脚本时,它将返回全部 5 个,第三次可能只有一个......就像这样。]

就好像我打开命令提示符并执行操作一样,

arp -a

每次都完美运行。

所以我的问题是,有没有办法可以解析 python 脚本中 cmd 的结果?

我查看了 os.popen(..??..),但我无法确切地理解我该怎么做?有没有什么好的图书馆? https://pypi.python.org/pypi/arprequest/0.3

最佳答案

您应该看看 subprocess模块。您可能想使用 check_output 方法:

import subprocess
output = subprocess.check_output(("arp", "-a"))
# Parse output here

check_output 将在 python 2 中返回一个 str 对象,在 python 3 中返回一个 bytes 对象,您可以使用 output 进行转换.decode("ascii") 例如。

关于python - 有没有办法在 python 脚本中执行 arp -a cmd 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36820516/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com