找到没使用的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


相关文章
|
3天前
C切断地址
C切断地址
9 0
|
1月前
|
开发工具
修改IP地址
【2月更文挑战第29天】修改IP地址。
20 2
|
3月前
|
网络协议 安全 定位技术
顺着 IP 地址,真的能找到我家吗?
这篇文章主要讨论了互联网平台陆续显示用户 IP 属地以及此举可能引发的隐私问题。文章指出,一些人支持平台强制在前台显示用户 IP 属地,认为这可以让人们收敛行为,防止虚假信息传播;而另一些人质疑这一举措会进一步侵犯个人隐私。文章还介绍了 IP 地址的基本定义和作用,以及它与个人隐私的关系。同时,也提到了用户和平台建立连接的基础是 IP,因此用户的 IP 信息会被平台服务器记录下来。对于公开用户 IP 属地所带来的隐私问题,文章提到了一些专家和律师的看法,以及一些保护个人隐私的建议,包括隐藏位置信息、删去不想暴露的信息、使用不同的用户名和密码等。
151043 36
|
9月前
|
网络协议
ip 地址哪些是保留地址?
ip 地址哪些是保留地址?
1548 1
|
18天前
|
域名解析 缓存 网络协议
找不到DNS地址的解决方案
找不到DNS地址的解决方案
34 1
|
3月前
leetcode:1108. IP 地址无效化
leetcode:1108. IP 地址无效化
13 0
|
网络架构
显示ip地址的命令(查看本地电脑的IP地址的方法)
显示ip地址的命令(查看本地电脑的IP地址的方法)
3822 0
|
监控 大数据 定位技术
多IP情况下如何获取本地的第一个IP及如何调整本地的第一个IP
我分析了业务的代码,OPTIONS中的Via中的用的是采用gethostbyname获取的。这意味着该函数获取的系统的默认的第一个IP。如果操作系统有多个IP,如何设置它们的优先级呢?
多IP情况下如何获取本地的第一个IP及如何调整本地的第一个IP