之前写过一个简单的脚本检测当前网段中主机状态的脚本,内容如下:

#! /bin/bash
#ping check host status trap "exit" 2
sping() {
  ping -c 1 -W 1 192.168.214.$1 &> /dev/null
   if [ $? -eq 0  ]; then
        echo "192.168.214.$1 up!"
   else
        echo "192.168.214.$1 down!"
   fi
}
for IP in {1..255}; do
  sping $IP
done

执行的时候耗时太长,效果很差,因为在循环里ping指令要执行几百次,而且ping检测执行的过程本身就比较慢,所有整个脚本执行结束需要很长的时间。

可以通过另一种工具来检测主机状态。那就是 nmap,它的执行效率非常高。

nmap,也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包,nmap几乎是黑客的必备工具了,

nmap基本功能有三个,一是探测一组主机是否在线;其次是扫描 主机端口,嗅探所提供的网络服务;还可以推断主机所用的操作系统 。

nmap的简单使用方法:

  • nmap -sP :(Ping扫描)

该选项告诉nmap仅仅 进行ping扫描 (主机发现),然后打印出对扫描做出响应的那些主机。 没有进一步的测试 (如端口扫描或者操作系统探测)。系统管理员往往也很喜欢这个选项。 它可以很方便地得出 网络上有多少机器正在运行或者监视服务器是否正常运行。常常有人称它为 地毯式ping,它比ping广播地址更可靠,因为许多主机对广播请求不响应

  eg:

[root@yufu sh]# nmap -sP 192.168.214.0/

Starting Nmap 5.51 ( http://nmap.org ) at 2018-03-31 03:52 CST
Nmap scan report for 192.168.214.1
Host is up (.00052s latency).
MAC Address: :::C0:: (VMware)
Nmap scan report for 192.168.214.2
Host is up (.00024s latency).
MAC Address: :::E8::5C (VMware)
Nmap scan report for 192.168.214.187
Host is up.
Nmap scan report for 192.168.214.190
Host is up (.00051s latency).
MAC Address: :0C::8A:DC: (VMware)
Nmap scan report for 192.168.214.254
Host is up (.00060s latency).
MAC Address: :::EE:D2: (VMware)
Nmap done: IP addresses ( hosts up) scanned in 11.98 seconds

nmap是一个非常强大的工具,它的功能有很多:比如端口扫描,操作系统探测,服务探测等,这里只针对主机探测功能做理解,其他功能留待以后慢慢研究。

linux主机状态检测方式的更多相关文章

  1. linux系统状态检测命令

    1.ifconfig命令 ifconfig命令用于获取网卡配置与网络状态等信息,格式为“ifconfig [网络设备] [参数]”. 使用ifconfig命令来查看本机当前的网卡配置与网络状态等信息时 ...

  2. Linux 系统状态检测命令

    介绍快速查看Linux系统运行状态的能力(网络网卡.系统内核.系统负载.内存使用情况.启用终端数量.历史登录记录.命令执行记录.救援诊断)等命令使用方法 1.ifconfig  用于获取网卡配置和网络 ...

  3. Linux | 系统状态检测

    ifconfig ifconfig 命令用于获取网卡配置与网络状态等信息,格式 ifconfig[网络设备][参数] 使用 ifconfig 命令来查看本机当前的网卡配置与网络状态等信息时,其实主要查 ...

  4. Linux系统状态检测

    基于Red Hat Enterprise Linux 7.5 1.ifconfig ifconfig用于获取和配置网络接口的网络参数,格式为“ifconfig [网络设备] [参数]” 参数: add ...

  5. Linux主机入侵检测

    检查系统信息.用户账号信息 ● 操作系统信息 cat /proc/version 用户信息 用户信息文件 /etc/passwd root:x:0:0:root:/root:/bin/bash 用户名 ...

  6. Linux - Port 端口检测方式

    ss 和 netstat 区别 netstat是遍历/proc下面每个PID目录: ss直接读/proc/net下面的统计信息. 所以ss执行的时候消耗资源以及消耗的时间都比netstat少很多 ne ...

  7. Linux分享笔记:系统状态检测命令小结

    作为一名合格的运维人员,要能很好地了解Linux服务器,要能熟练查看Linux系统的运行状态.以下是常用到的Linux系统状态检测命令. 1. ifconfig:用于获取网卡配置与网络状态等信息.通常 ...

  8. linux7下修改主机名的方式

    在基于linux发行版的众多linux kernel 3.0以上,包括rhel7,centos7等提供多种修改linux主机名的方式 1.通过编辑/etc/hostname文件 2.命令hostnam ...

  9. 批量ping 检测linux主机是否可以通

    批量ping 检测linux主机是否可以通 # 1.配置列表 [root@db137 liweiwie]# cat /home/dbatlbb/script/liweiwie/ping_ip.txt ...

随机推荐

  1. Subversion Server Edge用户权限设置简介

    Subversion Server Edge用户权限可分为两种,一种为按用户权限,一种为按组权限设置 1.按用户设置权限 [codeLibrary:/] //对整个代码库 *=r     //所有用户 ...

  2. jquery——解决鼠标移入移出导致盒子不停移动的bug

    使用mouseover().mouseout()时会出现这样一种情况,鼠标快速多次移入移出后这个盒子会在鼠标不动后继续运动 代码如下: <!DOCTYPE html> <html l ...

  3. python入门之sys模块、shutil模块

    sys模块 import sys sys.version 返回python的版本 sys.argv 返回一个以脚本名,和传入的参数作为元素的列表 sys.path 返回一个以当前代码文件路径,pyth ...

  4. Windows QT 商业版 试用

    You're about to evaluate Qt Enterprise - the cross-platform application and UI framework used to dev ...

  5. 埃氏筛法(求n以内有多少个素数)

    题目大意:给定整数n,请问n以内有多少个素数 思路:想必要判断一个数是否是素数,大家都会了,并且可以在O(根号n)的复杂度求出答案,那么求n以内的素数呢,那样求就显得有点复杂了,下面看一下这里介绍的

  6. 来自于51CTO的经典学习资料汇总

    移动开发类: 1.2012Android开发热门资料(110个)       http://bbs.51cto.com/thread-934023-1.html 2.[绝对给力]Android开发免豆 ...

  7. Cause: java.sql.SQLException: 无法转换为内部表示(Mybatis)

    公司开发档案系统使用框架:Spring+Struts2+Mybatis+EasyUI,在开发过程中出现sql异常:“Cause: java.sql.SQLException: 无法转换为内部表示”,错 ...

  8. java 从List<Integer> 中随机获取6个数

    List<Integer> list 为不重复的数字集合,例如:1,2,3,4,5,6,7,8,9,10 从中随机获取不重复的6个数.代码如下. List<Integer> l ...

  9. iOS开发之数据存取

    http://www.cocoachina.com/ios/20141111/10190.html

  10. 实现一个Promise.all

    用js自己实现一个Promise.all let promiseAll = (promises) => { return new Promise((resolve, reject) => ...