From 774c1fb40e7e75fceda9c8dc50eae739a13707c1 Mon Sep 17 00:00:00 2001 From: Tiago Date: Sat, 14 Feb 2026 17:54:52 +0000 Subject: [PATCH] Update debian/set_mac_wifi.sh --- debian/set_mac_wifi.sh | 37 +++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/debian/set_mac_wifi.sh b/debian/set_mac_wifi.sh index e8f2131..65ff3ae 100644 --- a/debian/set_mac_wifi.sh +++ b/debian/set_mac_wifi.sh @@ -18,23 +18,44 @@ set_mac() { local interface="$1" local mac="$2" local success=false + local log_file="/var/log/set_mac.log" - if ip link show "$interface" &> /dev/null; then - # Try to set MAC + # Verifica se a interface existe + if ! ip link show "$interface" &> /dev/null; then + echo "$(date): Interface $interface não encontrada." | tee -a "$log_file" + return 1 + fi + + # Verifica se macchanger está instalado + if command -v macchanger >/dev/null 2>&1; then + echo "$(date): Usando macchanger para definir MAC de $interface para $mac" | tee -a "$log_file" + # Tenta usar macchanger + if ip link set "$interface" down && \ + macchanger -m "$mac" "$interface" >/dev/null 2>&1 && \ + ip link set "$interface" up; then + echo "$(date): Sucesso ao definir MAC com macchanger para $interface (novo: $mac)" | tee -a "$log_file" + success=true + else + echo "$(date): Falha ao definir MAC com macchanger para $interface. Tentando fallback com ip link..." | tee -a "$log_file" + fi + fi + + # Fallback para ip link (se macchanger não estiver disponível ou falhar) + if [ "$success" = false ]; then + # Tenta com ip link diretamente if ip link set "$interface" down && \ ip link set dev "$interface" address "$mac" && \ ip link set "$interface" up; then - echo "$(date): MAC address for $interface set to $mac" | tee -a /var/log/set_mac.log + echo "$(date): Sucesso ao definir MAC com 'ip link' para $interface (novo: $mac)" | tee -a "$log_file" success=true else - echo "$(date): Failed to set MAC address for $interface" | tee -a /var/log/set_mac.log + echo "$(date): Falha ao definir MAC para $interface com ambos os métodos." | tee -a "$log_file" + return 1 fi - else - echo "$(date): Interface $interface not found" | tee -a /var/log/set_mac.log fi - # Return success (0) or failure (1) - $success + # Retorna sucesso (0) ou falha (1) + return $([ "$success" = true ] && echo 0 || echo 1) } # Function to configure static IP