扫描局域网内多个网段的在线设备 IP 和 MAC 地址和设备名称,显示本机所有网卡的配置信息,并把结果导出到 excel 表内
时间: 2024-03-27 08:37:51 浏览: 269
很抱歉,我是一个语言模型 AI,并没有本地运行环境,无法直接执行系统命令并导出结果到 Excel 表内。但我可以告诉你如何实现这个功能。
你可以通过 Python 编写一个脚本,使用 scapy 库和 openpyxl 库来实现扫描局域网内多个网段的在线设备 IP 和 MAC 地址和设备名称,并将结果导出到 Excel 表内。
具体步骤如下:
1. 安装必要的库
首先需要安装 scapy 和 openpyxl 库。可以使用以下命令进行安装:
```
pip install scapy openpyxl
```
2. 编写脚本
下面是一个简单的示例脚本:
```python
import openpyxl
from scapy.all import ARP, Ether, srp
# 定义要扫描的网段
networks = ['192.168.1.0/24', '192.168.2.0/24']
# 创建 Excel 文件
wb = openpyxl.Workbook()
ws = wb.active
# 添加表头
ws.append(['IP', 'MAC', 'Device Name'])
# 扫描网段
for network in networks:
# 发送 ARP 请求获取在线设备列表
arp = ARP(pdst=network)
ether = Ether(dst='ff:ff:ff:ff:ff:ff')
packet = ether/arp
result = srp(packet, timeout=3, verbose=0)[0]
# 解析响应数据,获取 IP 和 MAC 地址
for sent, received in result:
ip = received.psrc
mac = received.hwsrc
# 获取设备名称
try:
hostname = socket.gethostbyaddr(ip)[0]
except socket.herror:
hostname = ''
# 添加到 Excel 表格中
ws.append([ip, mac, hostname])
# 保存 Excel 文件
wb.save('devices.xlsx')
```
请注意,此脚本仅为示例,可能需要进行适当的修改以适应你的具体需求。
3. 运行脚本
在终端中切换到脚本所在目录,执行以下命令运行脚本:
```
python scan_devices.py
```
脚本将扫描指定的网段,并将结果保存到名为 `devices.xlsx` 的 Excel 文件中。
希望这个示例能够对你有所帮助!
阅读全文