[shell]通过ping检测整个网段IP的网络状态脚本

要实现Ping一个网段的所有IP,并检测网络连接状态是否正常,很多方法都可以实现,下面简单介绍两种,如下:
脚本1
#!/bin/sh
# Ping网段所有IP
# 2012/02/05
ip=1 #通过修改初值
while [ $ip != "254]; do 
#yes正常,no主机不存在或不正常
ping 192.168.0.$ip -c 2 | grep -q "ttl=" && echo "192.168.0.$ip yes" || echo "192.168.0.$ip no"
ip=`expr "$ip" "+" "1"`
done

输出结果:
192.168.0.1 yes
192.168.0.2 no
192.168.0.3 no
192.168.0.4 no
192.168.0.5 yes
192.168.0.6 no
192.168.0.7 yes
...

脚本2
#!/bin/sh
# Ping网段所有IP
# 2012/02/05
ip="192.168.0."
for i in `seq 1 254`
do
  ping -c 2 $ip$i | grep -q ‘ttl=‘ && echo "$ip$i yes"|| echo "$ip$i no"
  #yes正常,no主机不存在或不正常
done

输出结果:
192.168.0.1 yes
192.168.0.2 no
192.168.0.3 no
192.168.0.4 no
192.168.0.5 yes
192.168.0.6 no
192.168.0.7 yes
...

如果您有更好的方法实现,可以给我留言~

时间: 2024-10-10 04:45:18

[shell]通过ping检测整个网段IP的网络状态脚本的相关文章

shell通过ping检测整个网段IP的网络状态脚本

要实现Ping一个网段的所有IP,并检测网络连接状态是否正常,很多方法都可以实现,下面简单介绍两种,如下:脚本1#!/bin/sh# Ping网段所有IP# 2012/02/05ip=1 #通过修改初值while [ $ip != "254]; do #yes正常,no主机不存在或不正常ping 192.168.0.$ip -c 2 -w 2 | grep -q "ttl=" && echo "192.168.0.$ip yes" || e

iOS开发-Reachability实时检测Wifi,2G/3G/4G/网络状态

最近遇到一个功能就是根据用户当前的网络状,用户未联网需要提示一下,如果是Wifi可以推荐一些图片新闻,如果是3G模式设置为无图的模式,获取网络状态比较简单,毕竟中国现在的流量还是一个比较贵的状态,哪天用户发现App消耗流量过多说不定就干掉了App.不过苹果的Reachability都解决了以上问题,使用起来也比较方便,具体的稍微简单分析一下. Reachability.h头文件代码: #import <Foundation/Foundation.h> #import <SystemCon

shell多线程快速检测内网ip是否存活

!/bin/bash#Check the network is onlinecat /dev/null > ip_yes.txtcat /dev/null > ip_no.txtip_num="192.168.0"read -p "Enter your network segment(Default ip: 192.168.0):" ip_numif [ "$ip_num" = "" ];thenip_num=&q

linux,windows下检测指定的IP地址是否可用或者检测IP地址冲突的3种方式(批处理程序,python程序,linux shell 批量ping)

本文中的脚本适用范围: 1)检测某些IP地址是否被占用: 2)检测网络中某些设备是否存活: 3)在分配新的ip地址之前,批量检测环境中是否存在冲突的机器 以上检测基于ICMP Ping报文,要求所有的设备允许Ping,设备开通禁止ICMP策略,防火墙禁止ICMP报文等情况不在本文的考虑范围之内. 不多说,上代码: (一)windows 批处理脚本 1 ::autor lb 2 ::date 2018 05 3 @echo off 4 ::屏显当前的测试时间并输出到测试结果(详细日志和结果日志)

shell检测输入的IP是否合法

检测输入的IP是否合法 #!/bin/bash read -p "input an ip address: " ip_addr n1=`echo $ip_addr|awk -F. '{print $1}'` n2=`echo $ip_addr|awk -F. '{print $2}'` n3=`echo $ip_addr|awk -F. '{print $3}'` n4=`echo $ip_addr|awk -F. '{print $4}'` if [ $n1 -ge 1 ]&

QT 使用 QTcpSocket来检测 ip 设备的网络状态

使用QT中 QTcpSocket来检测设备的网络状态: 函数返回true,设备网络状态正常,返回false,设备网络异常. bool TcpIpSocket::sendATcpSocketToIp(QString ip){     m_ipAdress = ip;     abort();     connectToHost(m_ipAdress, port);     //等待timeout时间,如果仍然不通,则异常     return waitForConnected(timeout);

mac ping: sendto: Host is down PING不通别人的ip,可以ping通路由器 &nbsp;

mac ping: sendto: Host is down PING不通别人的ip,可以ping通路由器 PING 192.168.1.131 (192.168.1.131): 56 data bytesRequest timeout for icmp_seq 0Request timeout for icmp_seq 1Request timeout for icmp_seq 2Request timeout for icmp_seq 3ping: sendto: No route to h

android手机 ping 虚拟机ubuntu的ip地址

今天使用android手机往虚拟机上ubuntu 上搭建的nginx 和rtmp服务器推送东西的时候,怎么都推不上去. 后来在windows下的cmd里: # adb shell # ping 192.168.0.56 根本就ping不通 虚拟机的 ip ,发现虚拟机的ip和windows主机ip不再一个网端,所以怎么都不会ping通的. 后来发现VMware 的网络适配器选择的是NAT模式,这样是不行的. 需要更改为:桥接模式,然后编辑选项直接自动就行: ===================

使用python和批处理bat脚本ping检测主机连通性

今天因为工作需求,要在报盘机器上(windows系统)检测与上手连接的网络可用性,使用zabbix自身的功能并不能解决这个问题.所以一开始考虑使用python脚本调系统的ping命令来检测 然后再使用zabbix来监控就可完成任务. 网上查了下,发现使用subprocess和shlex可以完成检测,于是参考着整了个小脚本 #!/usr/bin/env python # -*- coding: utf-8 -*- #author:qingmiao import subprocess import