1
0
mirror of https://github.com/moshix/mvs.git synced 2026-01-11 23:43:00 +00:00
moshix.mvs/nicparseLinux.bash
2023-04-16 14:38:01 -05:00

65 lines
2.0 KiB
Bash

#!/usr/bin/env bash
# NIC addresses parser for Linux, AIX, Macos, Solaris
# run with ./nicparser.bash, for example in your .bash_profile
#
# Copyright 2023 by Moshix - All right reserved
# You may only execute this script but not redistribute or enhance without first including the full
# script in its entirety as comment in your own changes or enhancements
# v 0.1 Humble beginnings
# v 0.2 Exclude non IP4 interfaces
# v 0.3 Color!
# v 0.4 Generalized version for MacOs and Linux
# v 0.5 Nicer output
# v 0.6 Gets your external IP or times out telling you no external IP
# v 0.7 Get extenral IP optional with -e switch
# v 0.8 Set time out in second argument to n.n seconds (e.g. 2.1) with 2.2, only if -e is present, (e.g. -e 1.2)
# v 0.9 Added more common Linux NICs
set_color() {
# terminal handling globals
red=`tput setaf 1`
green=`tput setaf 2`
yellow=`tput setaf 3`
blue=`tput setaf 4`
magenta=`tput setaf 5`
cyan=`tput setaf 6`
white=`tput setaf 7`
blink=`tput blink`
rev=`tput rev`
reset=`tput sgr0`
# echo "${red}red text ${green}green text${reset}"
}
get_external() {
# now lets get external IP or timeout
echo -e "${blue}External IP: \t${white}"`timeout $delay curl ifconfig.me 2>/dev/null || echo "${red}no internet connection${reset}"`
}
# main loop here
set_color
for nictype in lo wlan enp3s wlp2s en utun bridge docker tap tun ens eth vde-dnet-tap inettap
do
for counter in 0 1 2 3 4 5 6 100 101 102 103 104 160 161 162
do
result=`ifconfig $nictype$counter 2>/dev/null`
if grep -q "inet " <<< "$result"; then #NIC exists...
echo -n -e "${blue}$nictype$counter: \t${reset}"
ifconfig "$nictype$counter" | grep "inet " | awk 'BEGIN{ORS=""}{print $2}' # ORS controls new line
echo -e "${reset}"
fi
done
done
if [[ "$1" == "-e" ]]; then
if [[ -z "$2" ]]; then
delay=1.8
get_external # call external IP routine
else
delay=$2
get_external
fi
else
echo "${cyan}Use the -e 1.2 switch to get your external IP with timeout 1.2 secs${reset}"
fi