feat(scan): 增强MAC厂商识别和主机名自动发现

- MAC厂商: 替换硬编码OUI_MAP为mac_vendor_lookup库(IEEE OUI官方数据库)
- 主机名发现新增NetBIOS广播(nmblookup),支持Windows/SMB设备
- 综合扫描支持enable_netbios参数
- 新增NetBIOS主机名发现API端点
- 扫描时自动补全缺失厂商(有MAC无vendor时自动识别)
This commit is contained in:
Your Name
2026-07-18 10:53:33 +08:00
parent bd68abee93
commit ccd7fbe2f0
4 changed files with 186 additions and 76 deletions
+10 -3
View File
@@ -21,6 +21,7 @@ def register_tasks(celery_app):
enable_ping: bool = True,
enable_arp: bool = True,
enable_dns: bool = True,
enable_netbios: bool = True,
timeout: int = 2):
"""
Celery 异步任务:扫描指定网段
@@ -54,6 +55,7 @@ def register_tasks(celery_app):
enable_ping=enable_ping,
enable_arp=enable_arp,
enable_dns=enable_dns,
enable_netbios=enable_netbios,
timeout=timeout
)
@@ -120,7 +122,8 @@ def register_tasks(celery_app):
@celery_app.task(bind=True)
def full_network_scan(self, enable_ping: bool = True,
enable_arp: bool = True,
enable_dns: bool = True):
enable_dns: bool = True,
enable_netbios: bool = True):
"""
Celery 定时任务:扫描所有网段
"""
@@ -144,7 +147,8 @@ def register_tasks(celery_app):
network.cidr,
enable_ping=enable_ping,
enable_arp=enable_arp,
enable_dns=enable_dns
enable_dns=enable_dns,
enable_netbios=enable_netbios
)
stats = EnhancedScanService.bulk_update_ips_from_scan(db, results)
@@ -191,7 +195,10 @@ def register_tasks(celery_app):
results = []
for ip in ip_addresses:
result = EnhancedScanService.comprehensive_scan(ip, enable_ping=True, enable_arp=True, enable_dns=False)
result = EnhancedScanService.comprehensive_scan(
ip, enable_ping=True, enable_arp=True, enable_dns=False,
enable_netbios=True
)
EnhancedScanService.update_ip_from_scan_result(db, result)
results.append(result)