IP监控分析的方法

公司内网IP地址资源有限,同时又存在很多分配后的IP长期不使用的情况。为提高IP地址资源的利用效率,需要监控IP的使用情况,统计IP的活动情况,收回长期不上线的IP地址资源,以便重新利用。需要解决的技术难点主要有三个方面:

  • 扫描网络存活主机的方法。
  • 每日定时扫描网络存活主机的方法。
  • 统计IP活动情况的方法。

扫描网络存活主机

扫描网络存活主机可使用以下nmap命令:

1
nmap -P0 192.168.1.1/24

-P0 (无ping) 该选项可解决主机防火墙开启了禁Ping选项而无法被发现的问题,缺点是主机发现的速度将很慢。

1
2
nmap -sn -PS135 172.16.1.128 -vvv -n --disable-arp-ping
#-n 禁用dns解析

注意nmap扫局域网存活主机都会预先进行arp扫描,在这里禁用了端口扫描,意味着nmap只会进行存活扫描,当nmap进行arp扫描后发现主机存活就不会进行后续操作,wireshark也就抓不到包,所以使用–disable-arp-ping禁用arp扫描。

被扫描主机可能开启防火墙,如何绕过防火墙判断主机是否存活,请参考:

定时扫描网络存活主机

目前倾向于使用Python在代码中定时调用nmap命令扫描存活主机。一日之内可扫描三次:上午、下午、晚上各一次。

可参考以下链接:

目前倾向于利用调度模块schedule实现定时任务。

统计IP活动情况

主要统计IP地址的未上线的天数。

设置Python脚本开机自启动

1
2
3
d:  #如果需要开机自启动的python程序在c盘,不需要这一行程序;如果需要自启动的python程序在d盘(或其他盘),需要先切换到d盘(或其他盘)
cd path #path为你所要开机自启动的python程序所在的文件夹
python xxx.py #xxx.py为path文件夹内需要自启动的python程序

具体实现

参考链接

  1. Nmap扫描结果保存到本地并提取ip,by ~Echo.
  2. nmap命令扫描存活主机,by qingfenghaha.
  3. Nmap,by wikipedia.
  4. nmap用法解析,by wikipeida.
  5. Python中匹配IP的正则表达式,by bro.
  6. 让 Python 程序定时执行的 8 种姿势~,by 随风.
  7. Python 定时任务最佳实践,by guoweikuang​.
  8. Windows 设置 Python 脚本开机自启的一些心得,by Hsinyan.
  9. 设置python程序开机自启动,by ego782140379.
  10. Nmap抓包分析与绕过Windows防火墙扫内网存活主机,by 合天网安实验室.
  11. Nmap Ping 扫描(防火墙 Bypass),by 一叶知安.