检测当前网段哪些IP是在线的

[root@storage ~]# cat ping.ip
#!/bin/bash
for ip in `seq 1 255`
    do
    {
      ping -c 2 192.168.220.$ip > /dev/null 2>&1
      if [ $? -eq 0 ]; then
        echo 192.168.220.$ip >> up.txt
      else
          echo 192.168.220.$ip >> down.txt
      fi
    }&
done
wait

 

或者利用

#!/bin/bash
ip="192.168.220."
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

编写一个Shell脚本来查找当前网段中未被使用的IP地址可以通过多种方法实现,其中一个常见的方法是使用`nmap`工具进行网络扫描,该工具可以帮助我们探测网络中活动的主机,从而间接得知哪些IP地址没有被使用。下面是一个基本的Shell脚本示例: ```bash #!/bin/bash # 网络配置参数 network_interface="eth0" # 假设你的网络接口名为eth0 subnet_mask="255.255.255.0" # 假设你的子网掩码为255.255.255.0 # 计算网络范围 network_address=$(ip addr show $network_interface | grep "inet " | awk '{print $2}' | cut -d/ -f1) first_ip=$(echo $network_address | cut -d. -f1-3).1 last_ip=$(echo $network_address | cut -d. -f1-3).$((254 - $(echo "$subnet_mask" | tr . ' ' | awk '{print $4}') )) # 使用nmap扫描网络范围内的IP地址 echo "Scanning IP addresses in the range $first_ip to $last_ip" for ip in $(seq $first_ip $last_ip); do ping -c 1 $ip &> /dev/null && echo "$ip is in use" || echo "$ip is NOT in use" done | tee available_ips.txt echo "Scan completed. Available IPs are listed in available_ips.txt" ``` 在运行这个脚本之前,请确保你已经安装了`nmap`和`ip`命令。这个脚本首先确定网络接口和子网掩码,然后计算出网络的起始和结束IP地址。之后,脚本通过循环检测每个IP地址是否响应ICMP请求(通常由`ping`命令发送),以此来判断该IP地址是否已被使用。 请注意,这个脚本是一个简单的示例,实际使用中可能需要根据网络环境和权限进行调整。扫描网络中的IP地址可能会被视为恶意行为,因此确保你有权在你的网络中执行这样的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值