该脚本主要用来检测局域网内用了哪些IP地址以及对应的Mac地址。
并没有多大的实际用途,主要用来练练手,熟悉脚本语法。linux下可以
使用nmap工具扫描局域网内的IP地址。功能很强大。
----------------------------------------------------------------------------------------------
一,脚本。
-
#!/bin/bash
-
#Program:
-
# ip scanner
-
#Author:
-
# wangzhe<wangzhe5004@gmail.com>
-
#Time:
-
# 2012-9-1
-
#eaxmple:sh scanner.sh 192.168.1.101
-
-
network=$(echo $1 | cut -d. -f1-3)
-
-
for i in $(seq 1 254)
-
do
-
ping -c 1 -w 1 $network.$i > /dev/null
-
if [ $? -eq 0 ]; then
-
arp $network.$i | grep ":" | awk '{print $1,$3}'
-
echo "host $network.$i is up"
-
else
-
echo "host $network.$i is down"
-
fi
-
done
1.0,cut命令对字符串进行解析。
1.1,seq命令顺序列出1-254
1.2,ping命令检测该IP是否使用,用执行的结果$?来判断是否执行成功。
1.3,arp在arp Cache中找到IP对应的Mac地址。
1.4,grep抓出带有“:”的那一行。
1.5,awk打印指定的列。
----------------------------------------------------------------------------------
二,脚本基础语法回顾。
2.0,脚本的编码风格是怎么样的,哪些地方要写注释说明?
2.1,脚本是如何传入参数的?使用默认变量$0,$1,$2...
2.2,脚本中的循环控制是怎么写的?
2.3,脚本中的分支控制是怎么写的?
2.4,脚本中的比较是怎么实现的,字符串的比较,整数的比较又是怎样的?
2.5,sed和awk的语法又该怎么使用?
2.6,脚本中常用的命令都有哪些?
----------------------------------------------------------------------------------
阅读(388) | 评论(0) | 转发(0) |