ajout de la gestion PTR

This commit is contained in:
Cédric Abonnel 2025-03-13 07:00:27 +01:00
parent 58bbe9051d
commit 18822822e3
1 changed files with 30 additions and 5 deletions
scripts/server-dhcp

View File

@ -25,16 +25,25 @@ IP="$1"
shift # Supprime le premier argument pour ne garder que les hostnames
HOSTNAMES=("$@")
# Fonction pour obtenir le nom de domaine de la machine
get_domain_name() {
local domain=$(dnsdomainname)
echo "$domain"
# Fonction pour obtenir le PTR record formaté
get_ptr_record() {
local ip="$1"
local reversed_ip=$(echo "$ip" | awk -F. '{print $4"."$3"."$2"."$1".in-addr.arpa"}')
echo "$reversed_ip"
}
# Fonction pour vérifier si un PTR existe
is_ptr_registered() {
local ip="$1"
local ptr=$(get_ptr_record "$ip")
grep -q "ptr-record=$ptr" "$DNSMASQ_CONF"
return $?
}
# Fonction pour obtenir le FQDN d'un hostname
get_fqdn() {
local hostname="$1"
local domain_name=$(get_domain_name)
local domain_name=$(dnsdomainname)
if [[ -n "$domain_name" ]]; then
echo "$hostname.$domain_name"
else
@ -87,6 +96,22 @@ for HOSTNAME in "${HOSTNAMES[@]}"; do
done
# Vérification et ajout du PTR record
PTR_RECORD=$(get_ptr_record "$IP")
if is_ptr_registered "$IP"; then
read -p "Un enregistrement PTR existe déjà pour $IP. Voulez-vous le remplacer ? (o/n) " REPLY
if [[ "$REPLY" =~ ^[Oo]$ ]]; then
sed -i "/ptr-record=$PTR_RECORD/d" "$DNSMASQ_CONF"
echo "ptr-record=$PTR_RECORD,${HOSTNAMES[0]}" >> "$DNSMASQ_CONF"
echo "PTR mis à jour : $PTR_RECORD -> ${HOSTNAMES[0]}"
MODIFIED=1
fi
else
echo "ptr-record=$PTR_RECORD,${HOSTNAMES[0]}" >> "$DNSMASQ_CONF"
echo "Ajout du PTR : $PTR_RECORD -> ${HOSTNAMES[0]}"
MODIFIED=1
fi
# Redémarrer dnsmasq seulement si des changements ont été faits
if [[ $MODIFIED -eq 1 ]]; then
systemctl restart dnsmasq