導讀:原因
原因python
想快速獲取全部服務去的uptime的信息 一、首先要獲取局域網全部存活機器 二、而後判斷是不是服務器[依據是22端口的開發與否] 三、基於Ansible 併發50來跑uptime信息
1、shell腳本系列
1.一、本身寫個for循環 [局域網存活機器144臺]shell
time for ((x=1; x<=255; x++)); do if ping -c1 192.168.0.$x &>/dev/null;then echo 192.168.0.$x;fi;done real 5m30.509s user 0m0.062s sys 0m0.166s 可能夠探測全網 輸出可視化強 不能區分網絡設備和服務器
1.二、基於ping的namp掃描 [局域網存活機器144臺]服務器
nmap -sP 192.168.0.0/24 real 0m11.797s user 0m0.019s sys 0m0.015s 速度快 能夠探測全網 輸出可視化差 不能區分網絡設備和服務器
1.三、shell併發 [局域網存活機器144臺]微信
time for ((x=1; x<=255; x++)); do echo 192.168.0.$x; done | xargs -n1 -P 255 -I {} ping -c1 {} 2>/dev/null | awk /ttl/'{print $4}' real 0m10.054s user 0m0.037s sys 0m0.149s 速度快 能夠探測全網 輸出可視化強 不能區分網絡設備和服務器
2、python 腳本系列
2.一、針對主機存活網絡
1.一、python的nmap模塊 1.二、本身寫多線程掃描工具
2.二、針對端口多線程
2.一、基於socket的端口探測
3、真正的生產環境中的場景覆蓋
3.一、vip有不少,這種ip沒法對應真實的交換路由設備或服務器併發
3.二、網絡設備和服務器都是有必定數量的,因此單純的ping是無效的,簡單粗暴的方式就是掃描22和23端口來稍加區分socket
3.三、基於每一個公司的特殊場景,有些服務器是禁ping的,因此基於ping方式獲取主機列表是有bug的工具
4、其餘
4.一、未涉及到的東西還有不少不少,後面再慢慢補吧ui
4.二、Zmap
4.三、ZGrab
4.四、圖形化的IP管理工具等
本文分享自微信公衆號 - 追馬Linux(zhuima_k8s)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。