找到没使用的ip地址 plus版

简介:

功能:使用ping 命令测试某个网段可能未使用的 ip地址
 

脚本如下:

 
  1. # cat sip.sh  
  2. #!/bin/bash 
  3. #Not used to find the ip 
  4. #20120415 
  5.  
  6. #variables 
  7. user=`id -u` 
  8.  
  9.  
  10. #function 
  11. netmask() { 
  12.   mask=(0 128.0.0.0 192.0.0.0 224.0.0.0 240.0.0.0 248.0.0.0 252.0.0.0 254.0.0.0 \ 
  13.       255.0.0.0 255.128.0.0 255.192.0.0 255.224.0.0 255.240.0.0 255.248.0.0 255.252.0.0 255.254.0.0 \ 
  14.       255.255.0.0 255.255.128.0 255.255.192.0 255.255.224.0 255.255.240.0 255.255.248.0 255.255.252.0 255.255.254.0 \ 
  15.       255.255.255.0 255.255.255.128 255.255.255.192 255.255.255.224 255.255.255.240 255.255.255.248 255.255.255.252 255.255.255.254 \  
  16.       255.255.255.255) 
  17.   echo ${mask[$1]}  
  18. sping() { 
  19. #echo $1 $2 $3 
  20. echo "The following ICMP packet not through" 
  21. for((ip=$1;ip<=$2;ip++));do 
  22.     ping -f -c 5 -W 1 "${3}$ip" > /dev/null || echo "${3}$ip" 
  23. done 
  24. }   
  25.  
  26.  
  27. #main 
  28. if [ $user -ne 0 ];then 
  29.     echo "must root !!" 
  30.     exit 1 
  31. fi 
  32. if [ $# -eq 0 ];then 
  33.     echo "Usage: $0 10.10.10.0/24" 
  34.     echo -e " 
  35.     59.151.*.*/24 
  36. 114.112.*.*/26
  37.     10.10.10.0/24" 
  38.     exit 1 
  39. fi 
  40. shell_arg=$(echo $1 | awk -F/ '{print $2}') 
  41. get_ip_head=$(echo $1 | awk -F/ '{print $1}'| awk -F. '{print $1"."$2"."$3"."}') 
  42. get_ip_trailing=$(echo $1 | awk -F/ '{print $1}'| awk -F. '{print $4}') 
  43. get_mask=$(netmask $shell_arg) 
  44. get_gj=$(echo $((256-$(echo $get_mask | awk -F. '{print $4}')))) 
  45. put_ip_start=$(echo $(($get_ip_trailing + 1))) 
  46. put_ip_end=$(echo $(($get_ip_trailing + $get_gj - 2))) 
  47. #echo -e "$shell_arg $get_mask $get_gj $get_ip_head $get_ip_trailing $put_ip_start $put_ip_end" 
  48. sping $put_ip_start $put_ip_end $get_ip_head 

使用方法:

 
  1. sh sip.sh 10.0.0.0/24 
  2. The following ICMP packet not through 
  3. 10.0.0.1 
  4. 10.0.0.2 
  5. 10.0.0.4 
  6. 10.0.0.8 

参考

http://dngood.blog.51cto.com/446195/667009

结束

使用网段自动算出ip地址,根据ping命令判断这些ip是否在用。

更多欢迎到此讨论:
71921660   37275208 (已满)


本文转自 dongnan 51CTO博客,原文链接:http://blog.51cto.com/dngood/837534


相关文章
|
6月前
|
开发工具
修改IP地址
【2月更文挑战第29天】修改IP地址。
77 2
|
6月前
C切断地址
C切断地址
32 0
|
网络协议
ip 地址哪些是保留地址?
ip 地址哪些是保留地址?
3537 1
|
5月前
|
网络协议
【已解决】找不到某服务器 IP 地址
【已解决】找不到某服务器 IP 地址
|
5月前
|
安全 网络安全 网络架构
IP地址的主要功能
IP地址是网络设备的唯一标识,用于数据包路由、网络通信、互操作性、安全管理和全球信息共享。它们确保数据准确传输,支持路由决策,允许设备安全互动,并打破地域限制。IP地址在不断发展的网络世界中扮演着核心角色。
|
6月前
|
网络协议 Ubuntu 网络安全
127.0.0.1、0.0.0.0和本机ip地址的区别
127.0.0.1、0.0.0.0和本机ip地址的区别
|
6月前
leetcode:1108. IP 地址无效化
leetcode:1108. IP 地址无效化
34 0
|
网络架构
显示ip地址的命令(查看本地电脑的IP地址的方法)
显示ip地址的命令(查看本地电脑的IP地址的方法)
3951 0
|
监控 大数据 定位技术
多IP情况下如何获取本地的第一个IP及如何调整本地的第一个IP
我分析了业务的代码,OPTIONS中的Via中的用的是采用gethostbyname获取的。这意味着该函数获取的系统的默认的第一个IP。如果操作系统有多个IP,如何设置它们的优先级呢?
多IP情况下如何获取本地的第一个IP及如何调整本地的第一个IP