#!/bin/bash

function ethernet() {
ip a | grep inet | grep -vw lo | grep -v vmnet | grep -v wl | grep -v inet6 | grep -v usb | grep -v ppp | grep -v sl | grep -v ww | grep -v docker | grep -v cs | grep -v tun | grep -v br- | grep -v lxcbr | grep -v tap | grep -v virbr | grep -v vnet | grep -v pan | grep -v wg | grep -v vboxnet | grep -v veth | grep brd > /dev/null
	if [ $? -ne 0 ]; then
	echo "Not connected"
	else
	ip a | grep inet | grep -vw lo | grep -v vmnet | grep -v wl | grep -v inet6 | grep -v usb | grep -v ppp | grep -v sl | grep -v ww | grep -v docker | grep -v cs | grep -v tun | grep -v br- | grep -v lxcbr | grep -v tap | grep -v virbr | grep -v vnet | grep -v pan | grep -v wg | grep -v vboxnet | grep -v veth | grep brd | cut -d \/ -f1 | awk '{ print $2 }'
	fi
}

function wifi() {
ip a | grep inet | grep -vw lo | grep -v vmnet | grep -v en | grep -v eth | grep -v inet6 | grep -v ppp | grep -v sl | grep -v ww | grep -v usb | grep -v docker | grep -v cs | grep -v tun | grep -v br- | grep -v lxcbr | grep -v tap | grep -v virbr | grep -v vnet | grep -v pan | grep -v wg | grep -v vboxnet | grep -v veth | grep brd > /dev/null
	if [ $? -ne 0 ]; then
	echo "Not connected"
	else
	ip a | grep inet | grep -vw lo | grep -v vmnet | grep -v en | grep -v eth | grep -v inet6 | grep -v ppp | grep -v sl | grep -v ww | grep -v usb | grep -v docker | grep -v cs | grep -v tun | grep -v br- | grep -v lxcbr | grep -v tap | grep -v virbr | grep -v vnet | grep -v pan | grep -v wg | grep -v vboxnet | grep -v veth | grep brd | cut -d \/ -f1 | awk '{ print $2 }'
	fi
}

function usb() {
ip a | grep inet | grep -vw lo | grep -v vmnet | grep -v wl | grep -v en | grep -v eth | grep -v inet6 | grep -v ppp | grep -v sl | grep -v ww | grep -v docker | grep -v cs | grep -v tun | grep -v br- | grep -v lxcbr | grep -v tap | grep -v virbr | grep -v vnet | grep -v pan | grep -v wg | grep -v vboxnet | grep -v veth | grep brd > /dev/null
	if [ $? -ne 0 ]; then
	echo "Not connected"
	else
	ip a | grep inet | grep -vw lo | grep -v vmnet | grep -v wl | grep -v en | grep -v eth | grep -v inet6 | grep -v ppp | grep -v sl | grep -v ww | grep -v docker | grep -v cs | grep -v tun | grep -v br- | grep -v lxcbr | grep -v tap | grep -v virbr | grep -v vnet | grep -v pan | grep -v wg | grep -v vboxnet | grep -v veth | grep brd | cut -d \/ -f1 | awk '{ print $2 }'
	fi
}

function vpn() {
ip a | grep inet | grep -vw lo | grep -v vmnet | grep -v inet6 | grep -v ppp | grep -v sl | grep -v ww | grep -v docker | grep -v br- | grep -v lxcbr | grep -v virbr | grep -v vnet | grep -v pan | grep -v vboxnet | grep -v veth | grep -v brd > /dev/null
	if [ $? -eq 0 ]; then
	ip a | grep inet | grep -vw lo | grep -v vmnet | grep -v inet6 | grep -v ppp | grep -v sl | grep -v ww | grep -v docker | grep -v br- | grep -v lxcbr | grep -v virbr | grep -v vnet | grep -v pan | grep -v vboxnet | grep -v veth | grep -v brd | cut -d \/ -f1 | awk '{ print $2 }'
	exit 0
	fi
ip a | grep inet | grep -vw lo | grep -v vmnet | grep -v wl | grep -v en | grep -v eth | grep -v inet6 | grep -v ppp | grep -v sl | grep -v ww | grep -v docker | grep -v br- | grep -v lxcbr | grep -v usb | grep -v virbr | grep -v vnet | grep -v vboxnet | grep -v veth | grep -v pan > /dev/null
	if [ $? -eq 0 ]; then
	ip a | grep inet | grep -vw lo | grep -v vmnet | grep -v wl | grep -v en | grep -v eth | grep -v inet6 | grep -v ppp | grep -v sl | grep -v ww | grep -v docker | grep -v br- | grep -v lxcbr | grep -v usb | grep -v virbr | grep -v vnet | grep -v vboxnet | grep -v veth | grep -v pan | cut -d \/ -f1 | awk '{ print $2 }'
	else
	echo "Not connected"
	fi
}

function dns() {
grep nameserver /etc/resolv.conf > /dev/null
	if [ $? -ne 0 ]; then
	echo "No resolver"
	else
	grep nameserver /etc/resolv.conf | head -1 | awk '{ print $2 }'
	fi
}

case $1 in
	ethernet)
		ethernet
	;;
	wifi)
		wifi
	;;
	usb)
		usb
	;;
	vpn)
		vpn
	;;
	dns)
		dns
	;;
esac
