#!/bin/zsh
# Helper script to find phone MAC address
# Tries multiple methods to detect phone hotspot MAC

set -euo pipefail

BLUE='\033[0;34m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m'

echo -e "${BLUE}=== Поиск MAC-адреса телефона ===${NC}\n"

# Method 1: Check if connected to hotspot
echo -e "${YELLOW}Метод 1: Проверка подключения к hotspot...${NC}"
if networksetup -getairportnetwork en0 &>/dev/null; then
    network_info=$(networksetup -getairportnetwork en0 2>/dev/null)
    if [[ "$network_info" != *"not associated"* ]]; then
        echo -e "${GREEN}✓ Подключен к сети${NC}"
        
        # Try to get BSSID using airport (deprecated but may work)
        bssid=$(/System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -I 2>/dev/null | grep -i "BSSID" | awk '{print $2}' || echo "")
        
        if [ -n "$bssid" ] && [ "$bssid" != "none" ]; then
            echo -e "${GREEN}✓ Найден BSSID (MAC точки доступа): $bssid${NC}"
            echo ""
            echo -e "${GREEN}Используйте этот MAC:${NC}"
            echo "./spoof-wifi-mac.sh $bssid"
            exit 0
        else
            echo -e "${YELLOW}⚠ Не удалось определить BSSID автоматически${NC}"
        fi
    else
        echo -e "${RED}✗ Не подключен к Wi-Fi сети${NC}"
    fi
else
    echo -e "${RED}✗ Wi-Fi интерфейс не найден${NC}"
fi

echo ""

# Method 2: Check ARP table for connected devices
echo -e "${YELLOW}Метод 2: Проверка ARP таблицы...${NC}"
gateway=$(route -n get default 2>/dev/null | grep gateway | awk '{print $2}' || echo "")
if [ -n "$gateway" ]; then
    echo -e "${GREEN}✓ Шлюз: $gateway${NC}"
    arp_mac=$(arp -n "$gateway" 2>/dev/null | awk '{print $4}' | grep -E "^([0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}$" || echo "")
    if [ -n "$arp_mac" ]; then
        echo -e "${GREEN}✓ MAC шлюза (возможно точка доступа): $arp_mac${NC}"
        echo ""
        echo -e "${GREEN}Возможный MAC точки доступа:${NC}"
        echo "./spoof-wifi-mac.sh $arp_mac"
        echo ""
        echo -e "${YELLOW}⚠ Это MAC роутера/точки доступа, проверьте на телефоне${NC}"
    else
        echo -e "${YELLOW}⚠ Не удалось определить MAC из ARP${NC}"
    fi
else
    echo -e "${RED}✗ Шлюз не найден${NC}"
fi

echo ""

# Method 3: Instructions
echo -e "${BLUE}=== Ручной способ получения MAC ===${NC}\n"

echo -e "${YELLOW}iPhone:${NC}"
echo "1. Настройки → Wi-Fi"
echo "2. Нажмите (i) рядом с активной сетью"
echo "3. Отключите 'Частный Wi-Fi адрес'"
echo "4. Скопируйте 'Адрес Wi-Fi'"
echo ""

echo -e "${YELLOW}Android:${NC}"
echo "1. Настройки → О телефоне → Статус"
echo "2. Найдите 'MAC-адрес Wi-Fi'"
echo ""

echo -e "${YELLOW}Для точки доступа (hotspot):${NC}"
echo "1. Включите точку доступа на телефоне"
echo "2. Подключите MacBook к hotspot"
echo "3. Запустите: ./spoof-wifi-mac.sh --phone-mac"
echo ""

echo -e "${BLUE}=== Альтернативный способ ===${NC}\n"
echo "Если MAC не отображается на телефоне:"
echo "1. Подключите MacBook к hotspot телефона"
echo "2. Запустите: ./spoof-wifi-mac.sh --phone-mac"
echo "   (скрипт автоматически определит MAC точки доступа)"
echo ""

