#!/bin/bash #/** #@file Net.lib #@brief Librería o clase Net #@class Net #@brief Funciones básicas de red. #@version 1.0.2 #@warning License: GNU GPLv3+ #*/ #/** # ogGetHostname #@brief Muestra el nombre del cliente. #@return str_host - nombre de máquina #@version 0.10 - Integración en OpenGnSys 0.10 #@author Ramon Gomez, ETSII Universidad de Sevilla #@date 2010-02-11 #*/ ## function ogGetHostname () { local HOST # Tomar nombre de la variable HOSTNAME HOST="$HOSTNAME" # Si no, tomar del DHCP, opción host-name /* (comentario para Doxygen) [ -z "$HOST" ] && HOST=$(awk -F\" '/option host-name/ {gsub(/;/,""); host=$2} END {print host} ' /var/lib/dhcp3/dhclient.leases) # Si no, leer el parámetro del kernel hostname (comentario para Doxygen) */ [ -z "$HOST" ] && HOST=$(awk 'BEGIN {RS=""; FS="="} $1~/hostname/ {print $2}' /proc/cmdline) [ "$HOSTNAME" != "$HOST" ] && export HOSTNAME="$HOST" echo $HOST } #/** # ogGetNetInterface #@brief Muestra la interfaz de red del sistema #@return str_interface - interfaz de red #@version 1.0 - Integración OpenGnSys 0.10 Opengnsys 0.10-testing #@note Usa las variables utilizadas por el initrd "/etc/net-ethX.conf #@author Antonio J. Doblas Viso. Universidad de Malaga. #@date 2011-02-24 #*/ ## function ogGetNetInterface () { echo $DEVICE } #/** # ogGetIpAddress #@brief Muestra la dirección IP del sistema #@return str_ip - Dirección IP #@version 0.10 - Integración en OpenGnSys 0.10 #@author Ramon Gomez, ETSII Universidad de Sevilla #@date 2010-02-11 #@version 1.0 - Integración OpenGnSys 0.10 Opengnsys 0.10-testing #@note Usa las variables utilizadas por el initrd "/etc/net-ethX.conf #@author Antonio J. Doblas Viso. Universidad de Malaga. #@date 2011-02-24 #@version 1.0.2 - Soporte para varias tarjetas de red #@author Ramon Gomez, ETSII Universidad de Sevilla #@date 2011-06-17 #*/ ## function ogGetIpAddress () { local IP if [ -n $IPV4ADDR ]; then IP=$IPV4ADDR else # Obtener direcciones IP. if [ -n "$DEVICE" ]; then IP=$(ip -o address show up dev "$DEVICE" 2>/dev/null | awk '{if ($3~/inet$/) {printf ("%s ", $4)}}') else IP=$(ip -o address show up | awk '$2!~/lo/ {if ($3~/inet$/) {printf ("%s ", $4)}}') fi fi # Mostrar solo la primera. echo ${IP%%/*} # (comentario para Doxygen) */ } #/** # ogGetMacAddress #@brief Muestra la dirección Ethernet del cliente. #@return str_ether - Dirección Ethernet #@version 0.10 - Integración en OpenGnSys 0.10 #@author Ramon Gomez, ETSII Universidad de Sevilla #@date 2010-02-11 #@version 1.0.2 - Soporte para varias tarjetas de red #@author Ramon Gomez, ETSII Universidad de Sevilla #@date 2011-06-17 #*/ ## function ogGetMacAddress () { local MAC # Obtener direcciones Ethernet. if [ -n "$DEVICE" ]; then MAC=$(ip -o address show up dev "$DEVICE" 2>/dev/null | awk '{sub (/.*\\/, ""); if ($1~/ether/) printf ("%s ", toupper($2));}') else MAC=$(ip -o address show up | awk '$2!~/lo/ {sub (/.*\\/, ""); if ($1~/ether/) printf ("%s ", toupper($2));}') fi # Mostrar sólo la primera. echo ${MAC%% *} } #/** # ogGetRepoIp #@brief Muestra la dirección IP del repositorio de datos. #@return str_ip - Dirección IP #@version 0.10 - Integración en OpenGnSys 0.10 #@author Ramon Gomez, ETSII Universidad de Sevilla #@date 2011-01-13 #@version 1.0 - Integración OpenGnSys 0.10 Opengnsys 0.10-testing #@note Comprobacion segun protocolo de conexion al Repo #@author Antonio J. Doblas Viso. Universidad de Malaga. #@date 2011-02-24 #*/ ## function ogGetRepoIp () { # Obtener direcciones IP, segun el protocolo de montaje if [ -n "$OGIMG" ]; then case "$ogprotocol" in nfs) mount | grep " on $OGIMG " | cut -f1 -d: ;; smb) mount | grep " on $OGIMG " | cut -f3 -d/ ;; esac fi } #/** # ogGetServerIp #@brief Muestra la dirección IP del Servidor de OpenGnSys. #@return str_ip - Dirección IP #@version 0.10 - Integración en OpenGnSys 0.10 #@author Ramon Gomez, ETSII Universidad de Sevilla #@date 2011-01-13 #@version 1.0 - Integración OpenGnSys 0.10 Opengnsys 0.10-testing #@note Comprobacion segun protocolo de conexion al Repo #@author Antonio J. Doblas Viso. Universidad de Malaga. #@date 2011-02-24 #*/ ## function ogGetServerIp () { # Obtener direcciones IP. if [ -n "$OPENGNSYS" ]; then case "$ogprotocol" in nfs) mount | grep " on $OPENGNSYS " | cut -f1 -d: ;; smb) mount | grep " on $OPENGNSYS " | cut -f3 -d/ ;; esac fi }