You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
1.8 KiB
103 lines
1.8 KiB
#!/bin/bash
|
|
|
|
set -eu
|
|
|
|
synopsis() {
|
|
cat << EOF
|
|
Usage : `basename $0` [-h] request [arg...] host
|
|
|
|
requests :
|
|
REDIR proto port : proto : tcp/udp, port : port à rediriger
|
|
LOCAL_USER_NUM : numéro local de l'utilisateur sur la machine (%32)
|
|
PUBLIC_IP N # N : public IP NUMBER
|
|
MAC_ADDR N # N : network interface NUMBER
|
|
ETH_LINK N # N : Ethernet link NUMBER
|
|
EOF
|
|
}
|
|
|
|
help() {
|
|
cat << EOF
|
|
|
|
`basename $0` affiche des infos sur host.network.user.vdn
|
|
|
|
La machine n'a pas besoin d'être démarrée (infos statiques)
|
|
|
|
Pour obtenir des infos dynamiques (redirection de ports) voir
|
|
vdn-infos
|
|
|
|
`synopsis`
|
|
|
|
-h : affiche cette aide
|
|
|
|
EOF
|
|
}
|
|
|
|
usage() {
|
|
synopsis
|
|
exit 1
|
|
}
|
|
|
|
args() {
|
|
local opt
|
|
while getopts "h" opt; do
|
|
case $opt in
|
|
h) help; exit 0;;
|
|
?) usage;;
|
|
esac
|
|
done
|
|
shift $(($OPTIND - 1))
|
|
|
|
[ $# -lt 2 ] && usage;
|
|
|
|
req=$1
|
|
shift
|
|
|
|
reqArgs=""
|
|
while [ $# -gt 1 ]; do
|
|
reqArgs="$reqArgs $1"
|
|
shift
|
|
done
|
|
|
|
[ "$reqArgs" = "" ] && reqArgs=0
|
|
|
|
|
|
host=$1
|
|
|
|
if [ $host = current ]; then
|
|
set +u
|
|
[ -z "$GUEST_NAME" ] && error "You can't user current in this context !"
|
|
set -u
|
|
host=$GUEST_NAME
|
|
fi
|
|
|
|
}
|
|
|
|
all() {
|
|
echo "REDIR $(reqArgs) : $(computeRedir $host $reqArgs)"
|
|
echo "LOCAL_USER_NUM: $(computePublicIp $host $reqArgs)"
|
|
echo "PUBLIC_IP: $(computePublicIp $host $reqArgs)"
|
|
echo "MAC_ADDR: $(computeMacAddr $host $reqArgs)"
|
|
echo "ETH_LINK: $(computeEthLink $host $reqArgs)"
|
|
}
|
|
|
|
|
|
# main
|
|
|
|
VDN_PATH=$(readlink -f $(dirname $0)/..); . $VDN_PATH/bin/functions.sh
|
|
|
|
#set -x
|
|
args "$@"
|
|
|
|
. $VDN_PATH/allocators/$VDN_RESOURCES_ALLOCATOR
|
|
|
|
case "$req" in
|
|
REDIR) computeRedir $host $reqArgs;;
|
|
LOCAL_USER_NUM) computeLocalUser $host $reqArgs;;
|
|
PUBLIC_IP) computePublicIp $host $reqArgs;;
|
|
MAC_ADDR) computeMacAddr $host $reqArgs;;
|
|
ETH_LINK) computeEthLink $host $reqArgs;;
|
|
all) all;;
|
|
*) usage;;
|
|
esac
|
|
|