同网段设备扫描程序,可以获取对应的ip、mac、厂商类型、以及端口和服务类型
基于python3.8,引用了py3PortScanner项目,通过模拟发包获取设备ip,mac连接他们写入文件,再通过文件读取分别替换IP与mac地址,引用pyPortScanner接口获取ip对应的端口内容,再通过切片获取对应的mac片段查库获取对应的厂商内容,最后通过端口选择出开放端口,再进行查库获取端口对应服务。
其中 scan.py------------------->是扫描文件, test.py------------------->是数据转json文件。 结果如下 192...: 48:46:fb:d5:0e:c1 : HUAWEI ||------->>{'25': 'smtp', ' 80': 'http', ' 110': 'pop3', ' 8080': 'webcache', ' 8443': '', ' 8888': ''} 192...: 4c:d9:8f:96:0a:ec : Dell ||------->>{'22': 'ssh', ' 111': 'sunrpc'} 192...: 70:e2:84:0c:d5:c8 : Wistron ||------->>{'22': 'ssh', ' 80': 'http', ' 111': 'sunrpc', ' 427': 'svrloc', ' 443': 'https'} 192...: 38:00:25:74:bf:08 : Intel ||------->>{'135': 'DCOM服务,冲击波病毒利用,不能关闭', ' 139': 'netbios-ssn', ' 445': 'microsoft-ds'} 192...*: 46:6f:a5:f5:01:0e : -- ||------->>没有端口信息
192...*: 3c:f5:cc:0a:e3:95 : New ||------->>{'22': 'ssh'}
对应的sql文件不方便共享仅给出参考形式 需要一张存放端口信息的表: 参数如下: id port_num(端口号) event_name 另一张存放mac厂商表 参数如下: id mac_perfix(mac前三组) spplier_desc(厂商名称) 1 00:22:72 AMG..... 需求差异,更改sql即可。