Python使用arp-scan实现局域网活动主机扫描及日志记录
Python实现局域网活动主机扫描及日志记录
本文将介绍如何使用Python脚本,结合arp-scan工具,实现对局域网内活动主机的扫描,并将其IP地址和MAC地址记录到日志文件中,以便于进行网络分析和安全防护。
代码实现
import subprocess
import time
import logging
def scan_active_hosts():
# 配置日志记录器
logging.basicConfig(filename='active_hosts.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
while True:
# 使用arp-scan命令扫描局域网
cmd = 'arp-scan --localnet | grep -E '^([0-9]{1,3}.){3}[0-9]{1,3}''
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
# 获取扫描结果
output = proc.stdout.read().decode('utf-8')
# 将扫描结果记录到日志文件
logging.info('扫描结果:\n' + output)
# 设置扫描间隔时间
time.sleep(5)
if __name__ == '__main__':
scan_active_hosts()
代码说明
-
导入必要的库:
subprocess: 用于执行系统命令time: 用于设置时间间隔logging: 用于记录日志
-
配置日志记录器:
filename: 设置日志文件名level: 设置日志级别format: 设置日志格式
-
使用arp-scan命令扫描局域网:
arp-scan --localnet: 扫描本地网络grep -E '^([0-9]{1,3}.){3}[0-9]{1,3}': 过滤出IP地址
-
获取扫描结果:
proc.stdout.read().decode('utf-8'): 读取命令执行结果并解码
-
将扫描结果记录到日志文件:
logging.info(): 记录信息级别的日志
-
设置扫描间隔时间:
time.sleep(5): 每隔5秒扫描一次
总结
本文介绍了如何使用Python脚本结合arp-scan工具实现对局域网内活动主机的扫描并记录日志。该脚本可以帮助网络管理员及时了解网络中的活动设备,并为网络安全防护提供数据支持。请注意,在实际应用中,应根据具体需求调整扫描间隔时间和日志记录策略。
原文地址: https://www.cveoy.top/t/topic/jniX 著作权归作者所有。请勿转载和采集!