日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

linux查看主机脚本,简单的bash脚本查看任意网段的在线主机

發(fā)布時(shí)間:2023/12/2 linux 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux查看主机脚本,简单的bash脚本查看任意网段的在线主机 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一前言

最近看到許多同志在寫(xiě)ping某個(gè)地址段的bash腳本,我也心血來(lái)潮來(lái)了一發(fā)。 ?當(dāng)然本人新手,大神勿噴。

二準(zhǔn)備工作

linux系統(tǒng)的機(jī)器一臺(tái),當(dāng)然虛擬機(jī)也可以,只要將網(wǎng)卡配置為橋接模式,可以連通其他局域網(wǎng)的主機(jī)即可。

1.實(shí)驗(yàn)環(huán)境 ?Centos 7.X 虛擬機(jī) ?軟件 bash ?ping

2.說(shuō)明 ?首先系統(tǒng)當(dāng)然是任何 linux類(lèi)或類(lèi)linux的機(jī)器都是可以的 虛擬機(jī)安裝完成后首先配置網(wǎng)卡

BOOTPROTO????我這里使用的是靜態(tài)的IP地址當(dāng)然你也可以使用靜態(tài)ip

ONBOOT? ? ? ? ?是否啟用網(wǎng)卡 改為yes不然重啟機(jī)器后網(wǎng)卡又失效了

IPADDR? ? ? ? ? 我這里是使用的靜態(tài)IP如果你的BOOTPROTO使用的是dhcp可以不用改這里

PREFIX????? ? ? ?子網(wǎng)掩碼的位數(shù)我這里使用的是172.18.0.0網(wǎng)段所以子網(wǎng)掩碼是16位如果你的BOOTPROTO使用的是dhcp可以不用改這里

GATEWAY? ? ? ?默認(rèn)網(wǎng)段不多解釋如果你的BOOTPROTO使用的是dhcp可以不用改這里

DNS1????? ? ? ? ?DNS地址用來(lái)解析域名的如果你沒(méi)設(shè)好吧你無(wú)法登陸www.baidu.com了除非你知道他的IP地址

3.查看命令是否存在

man了一下ping命令查看一下具體用法 ? 由man可以得知 ?-c是指定ping的次數(shù) ?-W指定超時(shí)時(shí)間 ?好的開(kāi)始

三腳本

為了能讓各位安全使用我已經(jīng)做了多次的測(cè)試 ?可能還有小bug歡迎致電

腳本的內(nèi)容如下:

#!/bin/bash

#Auther:xiaowu

#Dtion:ping dao ni

#Vsion:2.3

declare -i Inet

declare -i Snet

[[ $1 =~ ([0-9]{1,3}\.){3}([0-9]{1,3})\/(2[4-9]|3[0-2]) ]] ?#正則表達(dá)式驗(yàn)證是否為正確格式

if [ $? -ne 0 ] ;then ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #判斷格式是否配正確匹配

{

echo ” Usage:$0 172.18.0.0/24-32.” ? ? ? ? ? ? ?#如果格式未被正確匹配返回250狀態(tài)碼,并提示使用方法

exit 250

}

fi

Inet=`echo “$1″ | cut -d”.” -f4 | cut -d”/” -f1` ? ?#獲取Ip地址位

Iseg=`echo “$1″ | cut -d”/” -f2` ? ? ? ? ? ? ? ? ? ?#獲取子網(wǎng)掩碼位

Ipv4=`echo “$1″ | cut -d”.” -f1,2,3` ? ? ? ? ? ? ? ?#獲取主機(jī)位

echo “子網(wǎng)掩碼的位數(shù)為:$Iseg” ? ? ? ? ? ? ? ? ? ? ?#輸出子網(wǎng)掩碼

echo “Ipv4的首個(gè)地址為:$Inet” ? ? ? ? ? ? ? ? ? ? ?#輸出網(wǎng)絡(luò)地址位

echo “查看的網(wǎng)段地址為:$Ipv4” ? ? ? ? ? ? ? ? ? ? ?#輸出匹配的網(wǎng)絡(luò)位

let Smask=32-$Iseg ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#計(jì)算子網(wǎng)掩碼反掩碼位數(shù)

echo “反向子網(wǎng)掩碼位為:$Smask” ? ? ? ? ? ? ? ? ? ? #輸出反掩碼位數(shù)

Sips=$[2**$Smask] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #計(jì)算出指定網(wǎng)絡(luò)的IP數(shù)

echo “要查找的地址數(shù)為:$Sips” ? ? ? ? ? ? ? ? ? ? ?#輸出主機(jī)個(gè)數(shù)

Snet=$[ $Inet + $Sips -1 ] ? ? ? ? ? ? ? ? ? ? ? ? ?#從指定主機(jī)數(shù)到輸出的主機(jī)個(gè)數(shù)

if [ $Snet -gt 255 ] ;then ? ? ? ? ? ? ? ? ? ? ? ? ?#當(dāng)?shù)刂窋?shù)溢出時(shí)的補(bǔ)救措施

{

Snet=255 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#主機(jī)數(shù)強(qiáng)制為255個(gè)

}

fi

for i in `seq $Inet $Snet`; ? ? ? ? ? ? ? ? ? ? ? ? #for循環(huán)從指定主機(jī)開(kāi)始到指定網(wǎng)段結(jié)束的IP個(gè)數(shù)

do

ping -c1 -W1 $Ipv4.$i >/dev/null 2>&1 ?&& echo -e ?“\033[32m$Ipv4.$i is \tup \033[0m” || echo -e ?“$Ipv4.$i is\033[31m \tdown \033[0m”

#ping 判斷主機(jī)是在線(xiàn)還是 不在線(xiàn)

done

unset Inet Iseq Ipv4 wjy ?Smask Sips Snet ? ? ? ? ? #釋放上邊使用到的變量

使用方法 ?標(biāo)準(zhǔn)的IP地址/子網(wǎng)掩碼的位數(shù) ?譬如:172.18.252.0/24 ? 172.18.253.20/28 ? 172.18.6.110/30

主要是根據(jù)子網(wǎng)掩碼來(lái)計(jì)算需要ping的主機(jī)個(gè)數(shù) ?適用于經(jīng)過(guò)子網(wǎng)掩碼劃分過(guò)的網(wǎng)絡(luò) 最大支持/24 最多256個(gè)IP包括網(wǎng)絡(luò)位地址和主機(jī)位地址

注:此腳本適用于任何網(wǎng)段 ?并不是僅限于172.18.0.0 ?因?yàn)樽髡呤?72.18.0.0網(wǎng)段的 ?所以沒(méi)有用其他的網(wǎng)段測(cè)試

原創(chuàng)文章,作者:wode,如若轉(zhuǎn)載,請(qǐng)注明出處:http://www.178linux.com/70381

總結(jié)

以上是生活随笔為你收集整理的linux查看主机脚本,简单的bash脚本查看任意网段的在线主机的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。