correciton de l récupération des IP
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user