目前,我正在研究脚本,并且正在编写一些东西,可以在网络上对设备进行ping,如果它可以到达,然后从ping获取ttl数据,并声明它是操作系统。
我并不完全熟悉grep命令是如何工作的,但到目前为止,我已经了解了以下内容:
for host in $(seq 1 255);
do
ping -c 1 $sn.$host | grep "Unreachable" &>/dev/null
if [ $? -eq 0 ]; then
printf "%s\n" "$sn.$host is Offline"
fi
ping -c 1 $sn.$host | grep "ttl" &>/dev/null
if [ $? -eq 0 ]; then
printf "%s\n" "$sn.$host is Online"
fi
done我怎么能修改这个脚本,因为我知道Linux有64的ttl、128的Windows和255的ioS,可以让它输出类似于"$host是在线的。操作系统: Linux“吗?
例如,我知道我可以复制"ping -c 1 $sn.$host grep“行三次,添加ttl值并创建输出我想要的内容的if语句,但如果可能的话,我希望在一次执行ping时完成它。
发布于 2019-09-10 01:46:22
您可以通过修改您的ping获得如下所示的ttl:
ttl=$( ping -c 1 turing | grep ttl | sed 's/.*ttl=\([[:digit:]]*\).*/\1/' )在此之后,检查ttl中的值并打印所需的信息非常简单。
https://unix.stackexchange.com/questions/539920
复制相似问题