1. 程式人生 > >批量探測一個網段內主機線上狀態的指令碼(初)

批量探測一個網段內主機線上狀態的指令碼(初)

#!/bin/bash
Net8()
{
        for ((j=$[$NetMaskS+1]; j<9;j++ ))do
                        IPMAXS=${IPMAXS}1
        done
        IPMAXS10=$((2#$IPMAXS))
        echo "最小主機地址為:$Net1.0.0.1"
        echo "最大主機地址位:$IPMAXS10.255.255.254"
}
Net16()
{
        for ((j=$[$NetMaskS+1]; j<9;j++ ))do
                        IPMAXS=${IPMAXS}1
        done
        IPMAXS10=$((2#$IPMAXS))
        echo "最小主機地址為:$Net1.$Net2.0.1"
        echo "最大主機地址位:$Net1.$IPMAXS10.255.254"
}
Net24()
{
        for ((j=$[$NetMaskS+1]; j<9;j++ ))do
                        IPMAXS=${IPMAXS}1
        done
        IPMAXS10=$((2#$IPMAXS))
        echo "最小主機地址為:$Net1.$Net2.$Net3.1"
        echo "最大主機地址位:$Net1.$Net2.$IPMAXS10.254"
        echo "" > /app/ip.log
        for (( i=$Net3; i<=$IPMAXS10; i++ ));do
                for (( j=1; j<=254; j++ ));do
                        (
                        ping -w 2 -c 2 "${Net1}.${Net2}.${i}.$j" &> /dev/null
                        if [ $? -eq 0 ];then
                                echo " ${Net1}.${Net2}.${i}.${j}連通" | tee -a /app/ip.log
                        fi
                        )&
                done
        done
}
Net32()
{
        for ((j=$[$NetMaskS+1]; j<9;j++ ))do
                if [ $j -eq 8 ];then
                        IPMAXS=${IPMAXS}0
                else
                        IPMAXS=${IPMAXS}1
                fi
        done
        IPMAXS10=$((2#$IPMAXS))
        echo "最小主機地址為:$Net1.$Net2.$Net3.$[$Net4+1]"
        echo "最大主機地址位:$Net1.$Net2.$Net3.$IPMAXS10"
        echo "" > /app/ip.log
        for (( i=$[$Net4+1]; i<=$IPMAXS10; i++ ));do
                (
                        ping -w 2 -c 2 "${Net1}.${Net2}.${Net3}.${i}" &> /dev/null
                        if [ $? -eq 0 ];then
                                echo "${Net1}.${Net2}.${Net3}.${i}連通" | tee -a /app/ip.log
                        fi
                )&
        done
}
read -p "請輸入網段:" Net
read -p "請輸入掩碼:" NetMask
Net1=$(echo "$Net" | cut -d. -f1)
Net2=$(echo "$Net" | cut -d. -f2)
Net3=$(echo "$Net" | cut -d. -f3)
Net4=$(echo "$Net" | cut -d. -f4)
Net12=$(echo "obase=2;$Net1"|bc)
Net22=$(echo "obase=2;$Net2"|bc)
Net32=$(echo "obase=2;$Net3"|bc)
Net42=$(echo "obase=2;$Net4"|bc)
if [ $NetMask -gt 0 -a $NetMask -lt 8 ];then
        NetMaskS=$NetMask
        IPMAXS=$(echo "$Net12" | cut -c 1-$NetMaskS)
        Net8
fi
if [ $NetMask -ge 8 -a $NetMask -lt 16 ];then
        if [ $NetMask -eq 8 ];then
                IPMAXS=""
        else
                NetMaskS=$[$NetMask-8]
                IPMAXS=$(echo "$Net22" | cut -c 1-$NetMaskS)
        fi
        Net16
fi
if [ $NetMask -ge 16 -a $NetMask -lt 24 ];then
        if [ $NetMask -eq 16 ];then
                IPMAXS=""
        else
                NetMaskS=$[$NetMask-16]
                IPMAXS=$(echo "$Net32" | cut -c 1-$NetMaskS)
        fi
        Net24
fi
if [ $NetMask -ge 24 -a $NetMask -lt 32 ];then
        if [ $NetMask -eq 24 ];then
                IPMAXS=""
        else
                NetMaskS=$[$NetMask-24]
                IPMAXS=$(echo "$Net42" | cut -c 1-$NetMaskS)
        fi
        Net32
fi

相關推薦

批量探測一個主機線上狀態指令碼()

#!/bin/bashNet8(){        for ((j=$[$NetMaskS+1]; j<9;j++ ))do                        IPMAXS=${IPMAXS}1        done        IPMAXS10=$((

shell腳本之測試某主機連通性

shell linux 腳本 1. 測試192.168.4.0/24整個網段的連通性(while版本)#!/bin/bash #Author:丁丁歷險(Jacob) #定義變量i控制循環次數,i從1開始循環,每循環一次,i自加1,直到i等於254循環退出 #在每次循環中對一個IP進行ping測試,

shell指令碼批量ping一個ip

#!/bin/bash for i in {1..254}                     #一個網段ip個數 do HOST=192.168.10.$i            ping -c 2 $HOST &>/dev/null   #pin

IP地址和廣播地址不在一個時根據IP地址和子掩碼計算廣播地址

看TCP/IP詳解 卷1這部大作的時候,看到裡面計算廣播地址的方法,就在自己的機器 上測試了一下,結果遇到了一個小困難:我的機器上IP地址和廣播地址不在一個網段: 廣播地址就是把IP地址中主機號的那幾位設定為1,可是這裡看起來確實都設定為1了(廣播地址的最後一段為255)

python指令碼探測存活主機

import os for i in range(1,255): os.syetem("ping -c 1 -w 1 192.168.122.%s"%(i))未解決問題:1.只選擇存活主機輸出可優化部分:1.選擇存活主機進行弱口令測試遠端登入

A 類,B 類 ,C類網路地址的最大網路數,以及最大主機

不同的網路【網段】傳遞資料需要 通過路由器 同一網路【網段】傳遞資料 只需要通過交換機 A類地址前8位為網路標識。後24位為主機標識。網段與主機數的計算方法如下: A類網段計算: 根據規定,A類地址的網路標識必須以“0”開頭。那麼其網段數應該為0XX

nmap掃描的所有IP

nmapsudo nmap -sP -PI -PT 192.168.1.0/24nmap掃描網段內的所有IP

如何在linux使用nmap端口掃描工具掃描開放的端口

linux nmap 端口掃描 網段linux一般不會自動安裝nmap命令需要使用yum -y install nmap安裝nmap命令,前提是您已經配置好了yum源。nmap特點: 主機探測 端口掃描 版本

用PAT技術實現不同PC訪問外服務器

pat地址復用寫在最前邊:????????? PAT技術翻譯成中文叫做地址復用技術,是基於NAT技術的一種衍生版,目的就是實現局域網中的多個私網IP對一個或者多個公網IP的復用,從而節省公網IP。我在剛開始學習PAT配置的時候,受一些教學視頻的先入為主,認為在路由器上面配置好PAT後就可以實現外網地址訪問內網

Shell掃描所在存活主機

mas 需要 所在 sbin 網卡 ets shel toolbar dev 本例以c類地址為例,如果是A類或者B類地址,將腳本稍作修改即可ipaddr=`/usr/sbin/ip a | grep $1 | grep inet | awk '{print $2}&

如何讓不同主機進行通訊?如何讓虛擬機器上網? (閘道器 、路由器 、dns 的實際應用)

閘道器 路由器 dns 的實際應用: 閘道器: 是一個可直接到達的IP路由器的IP地址,閘道器與本機IP地址必須處在同一網段,一臺主機可以有多個閘道器 路由器: 能夠實現跨網段進行網路訪問,只有開啟了火牆策略才叫路由器,否則它只是一個雙網絡卡 dns: 是英文Domain

同一交換機不同主機不能通訊!!!!

沒有建立VLAN,把PC的IP分別設定成不同網段的IP, 例如PC 1:192.168.1.1 ,PC 2:192.168.2.1  ,PC 3:192.168.3.1 如果IP目的地址是PC3的資料包,主機會判斷是否在同一個內網,如果不在,就轉發給閘道器,此時的目的MA

如何計算一個的子掩碼,網路ID,廣播地址和可用IP地址數

1.判斷兩個IP在不在一個網段,主要看這兩個IP的網路ID,如果網路ID相同則這兩個IP在同一網段示例:判斷192.168.0.11/26 和 192.168.0.111/26在不在同一網段首先計算兩個IP的網路ID:192.168.0.11/26  子網掩碼(2進製表示):

設定iptables阻止一個訪問伺服器

要阻止一個網段,加入以下內容到/etc/sysconfig/iptables到chain的第一行,重啟iptables即可。 -A INPUT -s 100.97.15.0/24 -p tcp --dport 80 -j DROP

根據IP/掩碼位獲取IP的起始範圍、IP總數、IP屬不屬於某個或者列印所有的IP

import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.regex.Pattern; public class IpUtil {  

如何檢視正在使用的IP以及ip定位

在執行裡面輸入cmd回車進入命令列介面輸入以下命令: For /L %i in (0,1,254) DO ping 192.168.1.%i  >>E:/IP.txt 使用時只要替換掉對應的網段和存放的檔案地址就可以了。等掃描結束,開啟儲存的檔案,就知道哪些

postgresql資料庫允許某些遠端訪問

資料庫修改為允許某個網段遠端訪問 開啟postgresql\data\pg_hba.conf檔案。 找到 # IPv4 local connections: 加上如下內容 host   all             all             X.X.X.X/0  

IP工具類:判斷兩個ip是否在同一個,比較兩個ip的大小

import java.util.regex.Pattern; /** * IP地址範圍: 0.0.0.0~255.255.255.255,包括了mask地址。 IP地址劃分: * A類地址:1.0.0.1~126.255.255.254 B類地址:128.0.0.1~

同一交換機不同主機間通訊問題

同一交換機不同網段的主機為什麼不能通訊?想不通!!大夥發表下意見。 沒有建立VLAN,把PC的IP分別設定成不同網段的IP,例如PC 1:192.168.1.1 ,PC 2:192.168.2.1  ,PC 3:192.168.3.1他們之間為什麼在同一網段下可以通訊,

VM設定虛擬機器主機在同一

1、首先使用ifconfig -a檢視虛擬機器系統的網段,如下圖所示: 2、找到虛擬機器->設定選單,如下圖所示: 3、開啟設定對話方塊,選擇網路介面卡,如下圖所示: 4、將NAT模式修改為橋接模式,如下圖所示: 5、設定好之後,在進入虛擬機器系統檢視IP就與