比如现在需要对172.16.50.0/24网段的ip进行检查,检查哪些ip现在被占用,哪些ip没有被占用,可以通过ping命令来检查,脚本如下:

[root@uatdns01 opt]# vim /opt/ping.sh

#!/bin/bash

. /etc/init.d/functions

for var in {1..254};

do

ip=172.16.50.$var

ping -c2 $ip >/dev/null 2>&1

if [ $? = 0 ];then

action "$ip" /bin/true

else

action "$ip" /bin/false

fi

done

[root@uatdns01 opt]# chmod 755 /opt/ping.sh

[root@uatdns01 opt]# sh /opt/ping.sh

172.16.50.1 [ OK ]

172.16.50.2 [FAILED]

172.16.50.3 [FAILED]

172.16.50.4 [FAILED]

172.16.50.5 [FAILED]

.........

.........

172.16.50.99 [ OK ]

172.16.50.100 [ OK ]

172.16.50.101 [ OK ]

172.16.50.102 [ OK ]

172.16.50.103 [ OK ]

172.16.50.104 [ OK ]

172.16.50.105 [ OK ]

172.16.50.106 [ OK ]

172.16.50.107 [ OK ]

172.16.50.108 [ OK ]

172.16.50.109 [ OK ]

172.16.50.110 [ OK ]

172.16.50.111 [FAILED]

172.16.50.112 [ OK ]

获取172.16.60.0/24网段可用ip的shell脚本

[root@ansible-server ~]# cat ip_ping.sh

#!/bin/bash

ip=1

while [ $ip != "254" ]; do

ping 172.16.60.$ip -c 2 | grep -q "ttl=" && echo "172.16.60.$ip yes" || echo "172.16.60.$ip no"

ip=`expr "$ip" "+" "1"`

done

执行:

[root@ansible-server ~]# sh ip_ping.sh

172.16.60.1 yes

172.16.60.2 no

172.16.60.3 no

.............

172.16.60.24 yes

172.16.60.25 yes

172.16.60.26 no

.............

如果只打印可用ip, 则脚本修改如下:

[root@ansible-server ~]# cat ip_ping.sh

#!/bin/bash

ip=1

while [ $ip != "254" ]; do

ping 172.16.60.$ip -c 2 | grep -q "ttl=" && echo "172.16.60.$ip yes" || echo "172.16.60.$ip no" >/dev/null 2>&1

ip=`expr "$ip" "+" "1"`

done

执行:

[root@ansible-server ~]# sh ip_ping.sh

172.16.60.1 yes

172.16.60.21 yes

172.16.60.22 yes

172.16.60.23 yes

172.16.60.24 yes

172.16.60.25 yes

172.16.60.31 yes

172.16.60.32 yes

172.16.60.33 yes

172.16.60.34 yes

172.16.60.35 yes

172.16.60.36 yes

172.16.60.37 yes

172.16.60.38 yes

172.16.60.39 yes

获取172.16.50.0/24, 172.16.51.0/24, 172.16.60.0/24 三个网段的可用ip

[root@ansible-server ~]# cat ip_ping.sh

#!/bin/bash

ip=1

while [ $ip != "254" ]; do

ping 172.16.50.$ip -c 2 | grep -q "ttl=" && echo "172.16.50.$ip yes" || echo "172.16.50.$ip no" >/dev/null 2>&1

ip=`expr "$ip" "+" "1"`

ping 172.16.51.$ip -c 2 | grep -q "ttl=" && echo "172.16.51.$ip yes" || echo "172.16.51.$ip no" >/dev/null 2>&1

ip=`expr "$ip" "+" "1"`

ping 172.16.60.$ip -c 2 | grep -q "ttl=" && echo "172.16.60.$ip yes" || echo "172.16.60.$ip no" >/dev/null 2>&1

ip=`expr "$ip" "+" "1"`

done

执行:

[root@ansible-server ~]# sh ip_ping.sh

172.16.50.1 yes

172.16.51.11 yes

172.16.50.16 yes

172.16.50.19 yes

172.16.51.20 yes

172.16.60.21 yes

172.16.50.22 yes

172.16.60.24 yes

172.16.50.25 yes

172.16.50.31 yes

172.16.60.33 yes

172.16.51.35 yes

172.16.60.36 yes

172.16.60.39 yes

172.16.51.41 yes

172.16.51.44 yes

172.16.50.52 yes

172.16.51.53 yes

172.16.50.55 yes

172.16.50.58 yes

172.16.51.65 yes

..................

Linux下批量ping某个网段的脚本

比如现在需要对192.168.0.0/24网段的ip进行检查,检查哪些ip现在被占用,哪些ip没有被占用,可以通过ping命令来检查,也可以通过nmap接参数来检查 ping命令脚本如下: [root ...

Linux下多网卡同网段多IP网络分流设定方法

Linux下多网卡同网段多IP网络分流设定方法 -- :: 标签:Linux下多网卡同网段多IP网络分流设定方法 当服务器需要较高的网络流量时,在其它资源不造成瓶颈的情况下无疑会用到多网卡. 第1选项 ...

Windows 和  Linux 下 禁止ping的方法

Windows 和Linux 下 禁止ping的方法 目的: 禁止网络上的其他主机或服务器ping自己的服务器 运行环境: Windows 03.08  linux 方法: Windows 03下: ...

Linux下批量管理工具pssh安装和使用

Linux下批量管理工具pssh安装和使用 pssh工具包 安装:yum -y install pssh pssh:在多个主机上并行地运行命令 pscp:把文件并行地复制到多个主机上 prsync:通 ...

RedisCluster linux下批量删除 key

Redis Cluster linux下批量删除键 说明 使用时不支持传入参数 , 如 redis_batch_del.sh , 因为在linux下 会自动将 * 解析为当前目录下所有文件名, 目前还 ...

Linux 下获取LAN中指定IP的网卡的MAC(物理地址)

// all.h// 2005/06/20,a.m. wenxy #ifndef _ALL_H#define _ALL_H #include #include < ...

虚拟机Linux下一直获取不到ip怎么办

虚拟机Linux下一直获取不到ip怎么办 Ifconfig -a 只显示了本地的ip127.0.0.1 和另一个eth1 但是找不到ip地址. 需要做的是: 申请ipdhclient eth1 另外释 ...

python实现本地批量ping多个IP

本文主要利用python的相关模块进行批量ping ,测试IP连通性. 下面看具体代码(python3): #!/usr/bin/env python#-*-coding:utf-8-*- impor ...

Linux下批量修改文件及文件夹所有者及权限

Linux下批量修改文件及文件夹所有者及权限需要使用到两个命令,chmod以及chown 例:对/opt/Oracle/目录下的所有文件与子目录执行相同的权限变更: chmod -R 700 /opt ...

随机推荐

java 用 jxl poi 进行excel 解析 &ast;&ast;&ast; 最爱那水货

/** * 解析excel文件 ,并把数据放入数组中 格式 xlsx xls * @param path 从ftp上下载到本地的文件的路径 * @return 数据数组集合 */ public Lis ...

scoll滚动

[前端性能]高性能滚动 scroll 及页面渲染优化   最近在研究页面渲染及web动画的性能问题,以及拜读(CSS揭秘)这本大作. 本文主要想谈谈页面优化之滚动优 ...

option3

option = { tooltip : { trigger: 'item', formatter: "{a}
{b} : {c} ({d}%)" }, le ...

Lua中调用C函数

Lua利用一个虚拟的堆栈来给C传递值或从C获取值.每当Lua调用C函数,都会获得一个新的堆栈,该堆栈初始包含所有的调用C函数所需要的参数值(Lua传给C函数的调用实参),并且C函数执行完毕后,会把返回 ...

JavaScript:综合案例-表单验证

综合案例:表单验证 开发要求: 要求定义一个雇员信息的增加页面,例如页面名称为"emp_add.htmnl",而后在此页面中要提供有输入表单,此表单定义要求如下: .雇员编号:必须 ...

mysql-5&period;5&period;28源码安装过程中错误总结

介绍一下关于mysql-5.5.28源码安装过程中几大错误总结,希望此文章对各位同学有所帮助.系统centOS 6.3 mini (没有任何编译环境)预编译环境首先装了众所周知的 cmake(yum ...

android UI库

https://github.com/wasabeef/awesome-android-ui List of Android UI/UX Libraries A curated list of awe ...

Linux kernel &OpenCurlyQuote;xfs&lowbar;attrlist&lowbar;by&lowbar;handle&lpar;&rpar;’函数缓冲区溢出漏洞

漏洞名称: Linux kernel ‘xfs_attrlist_by_handle()’函数缓冲区溢出漏洞 CNNVD编号: CNNVD-201311-392 发布时间: 2013-11-29 更新 ...

&lbrack;转载&rsqb;Linux的时间与时钟中断处理

本文主要介绍在Linux下的时间实现以及系统如何进行时钟中断处理. 一. Linux的硬件时间 PC机中的时间有三种硬件时钟实现,这三种都是基于晶振产生的方波信号输入.这三种时钟为: 实时时钟RTC ...

shell vim--处理二进制文本

1 使用vim  -b  :%!xxd 参考:http://www.cnblogs.com/killkill/archive/2010/06/23/1763785.html 2 使用xxd命令 htt ...

Logo

更多推荐