用ping检测网段ip的占用情况

写法一:
#!/bin/sh
addr="192.168.10"
for ip in $( seq 1 100 )
do
ping -c 1 -w 1 ${addr}.${ip} &> /dev/null && num=1 ||num=0
if [ "$num" -eq 0 ] ; then
     echo "${addr}.${ip} is down"
fi
done

写法二:
for i in $(seq 1 254) ; do ping -w 1 -c 1 192.168.10.${i} &>/dev/null  || echo "192.168.10.${i} is up" ; done

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29620572/viewspace-1735826/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29620572/viewspace-1735826/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在不同的网段ping设备,您需要知道目标设备的IP地址和子网掩码。然后,您可以使用C#中的Ping类来执行ping操作。以下是一个示例代码,可以ping不同网段IP设备: ```csharp using System.Net.NetworkInformation; class Program { static void Main(string[] args) { Ping ping = new Ping(); PingOptions options = new PingOptions(); options.DontFragment = true; // 目标IP地址 string ipAddress = "192.168.1.1"; // 目标子网掩码 string subnetMask = "255.255.255.0"; // 将目标IP地址和子网掩码转换为IPAddress对象 IPAddress ip = IPAddress.Parse(ipAddress); IPAddress mask = IPAddress.Parse(subnetMask); // 使用GetNetworkAddress方法获取网络地址 IPAddress networkAddress = GetNetworkAddress(ip, mask); // 执行ping操作,遍历目标网段所有IP地址 for (int i = 1; i < 255; i++) { // 构造要pingIP地址 string pingIP = networkAddress.ToString() + "." + i.ToString(); // 调用Ping.Send方法执行ping操作 PingReply reply = ping.Send(pingIP, 1000, new byte[32], options); if (reply.Status == IPStatus.Success) { Console.WriteLine("Ping {0} 成功,时间={1}ms", pingIP, reply.RoundtripTime); } else { Console.WriteLine("Ping {0} 失败,错误={1}", pingIP, reply.Status); } } Console.ReadKey(); } // 获取网络地址 static IPAddress GetNetworkAddress(IPAddress address, IPAddress mask) { byte[] ipBytes = address.GetAddressBytes(); byte[] maskBytes = mask.GetAddressBytes(); if (ipBytes.Length != maskBytes.Length) throw new ArgumentException("Lengths of IP address and subnet mask do not match."); byte[] networkBytes = new byte[ipBytes.Length]; for (int i = 0; i < networkBytes.Length; i++) { networkBytes[i] = (byte)(ipBytes[i] & maskBytes[i]); } return new IPAddress(networkBytes); } } ``` 在上面的代码中,我们使用`GetNetworkAddress`方法来计算目标IP地址的网络地址。然后,我们使用循环遍历目标网段中的所有IP地址,并使用`Ping.Send`方法执行ping操作。如果ping操作成功,我们将打印成功的消息,否则将打印失败的消息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值