correciton de l récupération des IP

This commit is contained in:
2025-03-20 01:11:04 +01:00
parent 579631df00
commit 917f3a68bb
3 changed files with 121 additions and 48 deletions

View File

@@ -19,19 +19,33 @@ else
fi
# Obtenir l'adresse IP du serveur sur l'interface principale
IP_SERVEUR=$(ip -4 addr show $(ip route show default | awk '/default/ {print $5}') | grep -oP '(?<=inet\s)\d+(\.\d+){3}')
if [[ -z "$IP_SERVEUR" ]]; then
echo "Impossible de déterminer l'adresse IP du serveur."
# Récupérer toutes les interfaces avec leurs IP v4, sauf loopback
mapfile -t IPS < <(ip -4 -o addr show | awk '!/ lo / {print $2" "$4}')
if [[ ${#IPS[@]} -eq 0 ]]; then
echo "Aucune interface réseau avec une adresse IPv4 trouvée."
exit 1
fi
# Vérifier si l'IP est dans une plage privée autorisée
if [[ "$IP_SERVEUR" =~ ^10\..* || "$IP_SERVEUR" =~ ^192\.168\..* || "$IP_SERVEUR" =~ ^172\.(1[6-9]|2[0-9]|3[0-1])\..* ]]; then
echo "Adresse IP privée détectée : $IP_SERVEUR"
echo "Sélectionnez l'interface et l'IP à utiliser :"
select CHOIX in "${IPS[@]}"; do
if [[ -n "$CHOIX" ]]; then
INTERFACE=$(echo "$CHOIX" | awk '{print $1}')
IP_SERVEUR=$(echo "$CHOIX" | awk '{print $2}' | cut -d'/' -f1)
break
else
echo "Choix invalide."
fi
done
echo "Interface sélectionnée : $INTERFACE"
echo "Adresse IP sélectionnée : $IP_SERVEUR"
# Vérifier si l'IP est privée ou publique
if [[ "$IP_SERVEUR" =~ ^10\. ]] || [[ "$IP_SERVEUR" =~ ^192\.168\. ]] || [[ "$IP_SERVEUR" =~ ^172\.(1[6-9]|2[0-9]|3[0-1])\. ]]; then
echo "✅ Adresse IP privée détectée : $IP_SERVEUR"
else
echo "Erreur : L'adresse IP $IP_SERVEUR n'est pas dans un réseau privé."
exit 1
echo "⚠️ Attention : L'adresse IP $IP_SERVEUR semble PUBLIQUE !"
fi
FORCE=false
@@ -40,8 +54,10 @@ if [[ "$1" == "--force" ]]; then
echo "Mode forçage activé : reconfiguration complète..."
fi
if systemctl is-active --quiet dnsmasq && [ "$FORCE" = false ]; then
echo "dnsmasq est déjà actif et configuré. Utilisez --force pour reconfigurer."
DNSMASQ_CONF="/etc/dnsmasq.conf"
if grep -q "# CONFIGURE_PAR_CEDRIX" "$DNSMASQ_CONF" && [ "$FORCE" = false ]; then
echo "dnsmasq est déjà configuré. Utilisez --force pour reconfigurer."
exit 0
fi
@@ -88,7 +104,8 @@ fi
# Configurer dnsmasq
echo "Configuration de dnsmasq..."
cat <<EOF > /etc/dnsmasq.conf
cat <<EOF > $DNSMASQ_CONF
# CONFIGURE_PAR_CEDRIX
# Configuration de dnsmasq
# Interface réseau principale