码迷,mamicode.com
首页 > 系统相关 > 详细

编写MAC记录与端口扫描脚本的shell脚本

时间:2019-02-06 22:28:11      阅读:364      评论:0      收藏:0      [点我收藏+]

标签:while循环   ftp服务   ping命令   ++   bin   get   awk命令   编程   ping   

MAC记录与端口扫描脚本

1、需求描述
编写名为system.sh的小脚本,记录局域网中各主机的MAC地址,保存到/etc/ethers文件中;
若此文件已存在,应先转移进行备份;每行一条记录,第1列为IP地址,第2列为对应的MAC地址
检查有哪些主机开启了匿名FTP服务,扫描对象为/etc/ethers文件中的所有IP地址,扫描的端口为21
2、命令测试
分析:记录局域网中各主机的MAC地址,保存到/etc/ethers文件中;若此文件已存在,
应先转移进行备份;检查有哪些主机开启了匿名FTP服务,扫描对象为/etc/ethers文件中的所有IP地址,
扫描的端口为21
arping?–c?2?–w?1?ip?:发送MAC地址解析请求
arp?–n:纪录MAC
awk?:打印?ip与MAC地址
使用wget下载的方法测试FTP服务
3、脚本编程与调试
?通过arping命令发送ARP请求,使用if语句根据反馈结果记录MAC地址
?将网段地址(如192.168.4.)赋值给变量NADD,作为检测地址的前缀
?使用while循环语句,重复检测目标并记录MAC地址,主机地址为1~254
let??HADD++?使得ip地址的主机位自动加1
?通过awk命令过滤出/etc/ethers文件中的所有IP地址,赋值给变量TARGET,
并使用for循环语句,读取TARGET变量中的IP地址,重复探测FTP开启情况

实验步骤
1.编写名为system.sh的小脚本,记录局域网中各主机的MAC地址,保存到/etc/ethers文件中;
若此文件已存在,应先转移进行备份;每行一条记录,第1列为IP地址,第2列为对应的MAC地址
技术图片
脚本文件如下:
#!/bin/bash
d=/etc/ethers
if [ -f "$d" ] ###判断有没有/etc/ethers这个文件
then
(cp /etc/ethers /etc/ethers.bark )&&[ -d "$d" ]&&[ touch "$d" ]
###有,就新备份,删除,在创个新的
else ###这里注意,直接命令,用小括号
touch "$d" ###没有就创建文件
fi
HADD=1 ###定义IP的变量参数,起始值为1
while [ $HADD -lt 12 ] ###循环语句,当IP最后为不小于12,执行循环这里是做下测试,测试完后改为12改为254
do
ping -c 3 -i 0.2 -W 3 192.168.32.$HADD &> /dev/null ###ping一下
if [ $? -eq 0 ] ###有返回值,
then
echo "192.168.32.$HADD is up" ###输出此IP开启
arp -n |grep ether |awk ‘{print $1,$3}‘ > /etc/ethers ###并将IP和对应的mac地址筛选出来,
else ###覆盖保存到/etc/ethers文件里
echo "192.168.32.$HADD is down" ###否则,输出此IP关闭
fi
let HADD++ ###每次变量加1
Done
2.更改权限,运行测试文件
技术图片
3 查看/etc/ethers里面有没有存到文件
技术图片

开启的IP,其和他对应关系的IP都储存到这里面来了。

2、并使用for循环语句,读取TARGET变量中的IP地址,重复探测FTP开启情况
3、配置脚本文件。直接在system.sh后面添加下面脚本如下
技术图片

TARGET=$(awk ‘($1!="192.168.32.6")&&($1!="192.168.32.1"){print $1}‘ /etc/ethers)
###定义变量文件,要把网关和本机IP去掉,否则会卡机
for n in $TARGET
do
wget ftp://$n &> /dev/null ###当能用ftp下载,则匿名访问就开启了,否则关闭。
if [ $? -eq 0 ]
then
echo "ftp 匿名访问开启的服务机: $n"
else
echo "ftp 匿名访问关闭的服务机: $n"
fi
done

运行程序:
技术图片
在将shell脚本中HADD参数范围改成254,运行就可以用了
技术图片

编写MAC记录与端口扫描脚本的shell脚本

标签:while循环   ftp服务   ping命令   ++   bin   get   awk命令   编程   ping   

原文地址:http://blog.51cto.com/14062619/2348845

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!