#!/usr/bin/env bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin datum=`/bin/date +"%d.%m.%Y"` email_to=$1 email_to=${email_to:="root"} email_from="$(whoami)@$(hostname --long)" file=/tmp/mail_ip-up$$ INET_INTERFACE="$(netstat -rn | grep -e"^0.0.0" | awk '{print$8}')" if [[ -n "$INET_INTERFACE" ]] ; then EXTERN_IPv4="$(ip addr show $INET_INTERFACE | grep -E "\s+inet\s+" | awk '{print$2}')" EXTERN_IPv6="$(ip addr show $INET_INTERFACE | grep global | grep -E "\s+inet6\s+" | awk '{print$2}')" fi if [[ -n "${EXTERN_IPv4}" ]] ; then if [[ "${EXTERN_IPv4}" =~ ^10\. ]] \ || [[ "${EXTERN_IPv4}" =~ ^172\.16\. ]] \ || [[ "${EXTERN_IPv4}" =~ ^172\.17\. ]] \ || [[ "${EXTERN_IPv4}" =~ ^172\.18\. ]] \ || [[ "${EXTERN_IPv4}" =~ ^172\.19\. ]] \ || [[ "${EXTERN_IPv4}" =~ ^172\.20\. ]] \ || [[ "${EXTERN_IPv4}" =~ ^172\.21\. ]] \ || [[ "${EXTERN_IPv4}" =~ ^172\.22\. ]] \ || [[ "${EXTERN_IPv4}" =~ ^172\.23\. ]] \ || [[ "${EXTERN_IPv4}" =~ ^172\.24\. ]] \ || [[ "${EXTERN_IPv4}" =~ ^172\.25\. ]] \ || [[ "${EXTERN_IPv4}" =~ ^172\.26\. ]] \ || [[ "${EXTERN_IPv4}" =~ ^172\.27\. ]] \ || [[ "${EXTERN_IPv4}" =~ ^172\.28\. ]] \ || [[ "${EXTERN_IPv4}" =~ ^172\.29\. ]] \ || [[ "${EXTERN_IPv4}" =~ ^172\.30\. ]] \ || [[ "${EXTERN_IPv4}" =~ ^172\.31\. ]] \ || [[ "${EXTERN_IPv4}" =~ ^192\.168\. ]] ; then PUBLIC_IPv4="$(wget -qO- https://meine-ip.oopen.de 2> /dev/null)" fi fi DNS_SERVER="$(cat /etc/resolv.conf | grep -v -e"^#" | grep nameserver | cut -d " " -f2)" DEFAULT_GW="$(netstat -rn | grep -e"^0.0.0" | awk '{print$2}')" echo "" > $file echo " *******************************************************" >> $file echo " *** This is an autogenerated mail ***" >> $file echo "" >> $file echo -e "\tHost.........................: `hostname --long`" >> $file echo "" >> $file echo -e "\tSender.......................: $email_from" >> $file echo "" >> $file if [[ -n "$INET_INTERFACE" ]] ; then echo -e "\tInterface extern.............: $INET_INTERFACE" >> $file echo "" >> $file declare -i i=1 for ip in $EXTERN_IPv4 ; do if [ $i -eq 1 ]; then echo -e "\t Local IPv4 address...........: $ip" >> $file else echo -e "\t $ip" >> $file fi let i++ done i=1 for ip in $EXTERN_IPv6 ; do if [ $i -eq 1 ]; then echo "" >> $file echo -e "\t Local IPv6 address...........: $ip" >> $file else echo -e "\t $ip" >> $file fi let i++ done fi echo "" >> $file if [ "$DEFAULT_GW" ] ; then echo -e "\t Default Gateway..............: $DEFAULT_GW" >> $file fi if [[ -n "${PUBLIC_IPv4}" ]] && [[ "${PUBLIC_IPv4}" != "${EXTERN_IPv4}" ]]; then echo "" >> $file echo -e "\t öffentliche IPv4 address.....: ${PUBLIC_IPv4}" >> $file fi echo "" >> $file declare -i i=1 for dns in $DNS_SERVER ; do echo -e "\tNameserver $i.................: $dns" >> $file let i++ done echo "" >> $file echo -e "\tDate.........................: $(date +"%d.%m.%Y")" >> $file echo -e "\tTime.........................: $(date +"%H:%M:%S")" >> $file echo "" >> $file echo " *** ***" >> $file echo " *******************************************************" >> $file echo -e "From:${email_from}\nTo:${email_to}\nSubject:Test on $(hostname --long) at $datum\n\n$(/bin/cat $file)" | /usr/sbin/sendmail -F "$(whoami)" -f $email_from $email_to rm -f $file exit 0