147 lines
4.0 KiB
Bash
147 lines
4.0 KiB
Bash
#!/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
|
|
}
|
|
|