[Bash] Listado IP’s

Este código no es de mucha utilidad per se, solo es una prueba de concepto de como podríamos sacar todas las IP’s de un rango dado:

01#!/bin/bash
02#comprobamos que han introducido al menos un parametro
03if [ -z $1 ]
04    then
05           
06    echo "No ha especificado ningun parametro. Por favor incluya la IP origen del rango y la IP final del rango"
07     
08else
09    if [ -z $2 ]
10    then
11        echo "Debe introducir como segundo parámetro la IP final del rango"
12    else
13         
14        let BIT1=`echo $1 | cut -d "." -f 1`
15        let BIT2=`echo $1 | cut -d "." -f 2`
16        let BIT3=`echo $1 | cut -d "." -f 3`
17        let BIT4=`echo $1 | cut -d "." -f 4`
18 
19        let BIT11=`echo $2 | cut -d "." -f 1`
20        let BIT12=`echo $2 | cut -d "." -f 2`
21        let BIT13=`echo $2 | cut -d "." -f 3`
22        let BIT14=`echo $2 | cut -d "." -f 4`
23 
24        while [ "$BIT4" -lt "$BIT14" ]; do
25            echo "nmap $BIT1.$BIT2.$BIT3.$BIT4"
26            let "BIT4 = $BIT4 + 1"
27        done
28 
29 
30        while [ "$BIT3" -lt "$BIT13" ]; do
31                echo "nmap $BIT1.$BIT2.$BIT3.$BIT4"
32           
33            let BIT4=`echo $1 | cut -d "." -f 4`
34            while [ "$BIT4" -lt "$BIT14" ]; do
35                    echo "nmap $BIT1.$BIT2.$BIT3.$BIT4"
36                      let "BIT4 = $BIT4 + 1"
37            done
38            let "BIT3 = $BIT3 + 1"
39        done
40 
41 
42        while [ "$BIT2" -lt "$BIT12" ]; do
43                echo "nmap $BIT1.$BIT2.$BIT3.$BIT4"
44                let "BIT2 = $BIT2 + 1"
45            let BIT3=`echo $1 | cut -d "." -f 3`
46            while [ "$BIT3" -lt "$BIT13" ]; do
47                    echo "nmap $BIT1.$BIT2.$BIT3.$BIT4"
48                       let "BIT3 = $BIT3 + 1"
49                let BIT4=`echo $1 | cut -d "." -f 4`            
50                while [ "$BIT4" -lt "$BIT14" ]; do
51                            echo "nmap $BIT1.$BIT2.$BIT3.$BIT4"
52                            let "BIT4 = $BIT4 + 1"
53                    done
54             done
55         done
56 
57        while [ "$BIT1" -lt "$BIT11" ]; do
58                echo "nmap $BIT1.$BIT2.$BIT3.$BIT4"
59                let "BIT1 = $BIT1 + 1"
60            let BIT2=`echo $1 | cut -d "." -f 2`   
61            while [ "$BIT2" -lt "$BIT12" ]; do
62                    echo "nmap $BIT1.$BIT2.$BIT3.$BIT4"
63                    let "BIT2 = $BIT2 + 1"
64                let BIT3=`echo $1 | cut -d "." -f 3`
65                    while [ "$BIT3" -lt "$BIT13" ]; do
66                               echo "nmap $BIT1.$BIT2.$BIT3.$BIT4"
67                            let "BIT3 = $BIT3 + 1"
68                    let BIT4=`echo $1 | cut -d "." -f 4`              
69                    while [ "$BIT4" -lt "$BIT14" ]; do
70                                    echo "nmap $BIT1.$BIT2.$BIT3.$BIT4"
71                                    let "BIT4 = $BIT4 + 1"
72                    done
73                    done
74            done
75        done
76    fi
77fi

3 comments for “[Bash] Listado IP’s

Deja un comentario