#!/bin/bash #/** #@file Net.lib #@brief Librería o clase Net #@class Net #@brief Funciones básicas de red. #@version 0.10 #@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_interfaz - 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 #*/ ## function ogGetIpAddress () { local IP if [ -n $IPV4ADDR ] then echo $IPV4ADDR else # Obtener direcciones IP. /* (comentario para Doxygen) IP=$(ip address show | awk '$2!~/lo/ { readline; if ($1~/inet$/) {sub (/\/.*/, ""); printf ("%s ", $2)}}') # Mostrar sólo la primera. (comentario para Doxygen) */ echo ${IP%% *} fi } #/** # 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 #*/ ## function ogGetMacAddress () { local MAC # Obtener direcciones Ethernet. MAC=$(ip address show | awk '$2!~/lo/ {readline; if ($1~/ether/) printf ("%s ", toupper($2));}') # 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 "$PENGNSYS" ]; then case "$ogprotocol" in nfs) mount | grep " on $OPENGNSYS " | cut -f1 -d: ;; smb) mount | grep " on $OPENGNSYS " | cut -f3 -d/ ;; esac fi }