From a2d55a00a289138b9c81c7aad4e0296cd4e97184 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=85=8E=E9=A5=BC=E6=9E=9C=E5=AD=90=E5=8D=B7=E9=B2=A8?= =?UTF-8?q?=E9=B1=BC=E8=BE=A3=E6=A4=92?= Date: Tue, 22 Apr 2025 16:13:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=B8=B4=E6=97=B6=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E7=B3=BB=E7=BB=9F=20MAC=20=E5=9C=B0=E5=9D=80=E7=9A=84?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=8C=E5=A2=9E=E5=8A=A0=E4=BA=86=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E7=A6=81=E7=94=A8=E5=92=8C=E9=87=8D=E6=96=B0=E5=90=AF?= =?UTF-8?q?=E7=94=A8=E7=9A=84=E6=AD=A5=E9=AA=A4=EF=BC=8C=E4=BB=A5=E7=A1=AE?= =?UTF-8?q?=E4=BF=9D=E5=9C=A8=E4=BF=AE=E6=94=B9=E8=BF=87=E7=A8=8B=E4=B8=AD?= =?UTF-8?q?=E7=BD=91=E7=BB=9C=E8=BF=9E=E6=8E=A5=E7=9A=84=E7=A8=B3=E5=AE=9A?= =?UTF-8?q?=E6=80=A7=E3=80=82=E6=B7=BB=E5=8A=A0=E4=BA=86=E8=AF=A6=E7=BB=86?= =?UTF-8?q?=E7=9A=84=E6=97=A5=E5=BF=97=E8=AE=B0=E5=BD=95=E5=92=8C=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E5=A4=84=E7=90=86=EF=BC=8C=E7=A1=AE=E4=BF=9D=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E8=83=BD=E5=A4=9F=E6=B8=85=E6=99=B0=E4=BA=86=E8=A7=A3?= =?UTF-8?q?=20MAC=20=E5=9C=B0=E5=9D=80=E4=BF=AE=E6=94=B9=E7=9A=84=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E5=92=8C=E5=8F=AF=E8=83=BD=E7=9A=84=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E5=8E=9F=E5=9B=A0=E3=80=82=E6=AD=A4=E6=9B=B4=E6=94=B9=E6=97=A8?= =?UTF-8?q?=E5=9C=A8=E6=8F=90=E5=8D=87=E7=94=A8=E6=88=B7=E4=BD=93=E9=AA=8C?= =?UTF-8?q?=E5=92=8C=E5=8A=9F=E8=83=BD=E7=9A=84=E5=8F=AF=E9=9D=A0=E6=80=A7?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/run/cursor_mac_id_modifier.sh | 67 +++++++++++++++++++++------ 1 file changed, 54 insertions(+), 13 deletions(-) diff --git a/scripts/run/cursor_mac_id_modifier.sh b/scripts/run/cursor_mac_id_modifier.sh index 81c4920..12d312e 100644 --- a/scripts/run/cursor_mac_id_modifier.sh +++ b/scripts/run/cursor_mac_id_modifier.sh @@ -183,21 +183,63 @@ change_system_mac_address() { local random_mac=$(printf '02:%02x:%02x:%02x:%02x:%02x' $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256))) log_info "生成新的随机 MAC 地址: $random_mac" - log_info "执行命令: sudo ifconfig $primary_interface ether $random_mac" - if sudo ifconfig "$primary_interface" ether "$random_mac"; then - log_info "成功将接口 '$primary_interface' 的 MAC 地址临时修改为: $random_mac" - local new_mac_check=$(ifconfig "$primary_interface" | awk '/ether/{print $2}') - log_info "验证新 MAC 地址: $new_mac_check" - if [ "$new_mac_check" != "$random_mac" ]; then - log_warn "验证失败,MAC 地址似乎未成功设置。" + local mac_change_success=false + + # 临时禁用接口 + log_info "临时禁用接口 '$primary_interface' 以修改 MAC 地址 (网络会短暂中断)..." + if ! sudo ifconfig "$primary_interface" down; then + log_error "禁用接口 '$primary_interface' 失败,跳过 MAC 地址修改。" + echo -e "${RED}禁用网络接口失败。请检查日志: $LOG_FILE ${NC}" + # 即使禁用失败,仍然尝试启用接口 + else + log_info "接口 '$primary_interface' 已禁用,等待1秒..." + sleep 1 # 添加短暂延迟确保接口状态改变 + + # 尝试修改 MAC 地址 + log_info "尝试执行命令: sudo ifconfig $primary_interface ether $random_mac" + if sudo ifconfig "$primary_interface" ether "$random_mac"; then + log_info "尝试修改接口 '$primary_interface' 的 MAC 地址为: $random_mac [成功]" + local new_mac_check=$(ifconfig "$primary_interface" | awk '/ether/{print $2}') + log_info "验证新 MAC 地址 (接口禁用状态下): $new_mac_check" + if [ "$new_mac_check" != "$random_mac" ]; then + log_warn "验证失败,MAC 地址似乎未成功设置 (接口禁用状态下)。" + else + mac_change_success=true + fi + else + log_error "尝试修改接口 '$primary_interface' 的 MAC 地址失败。" + log_error "请检查接口名称是否正确,或尝试手动执行: sudo ifconfig $primary_interface down && sudo ifconfig $primary_interface ether <新MAC地址> && sudo ifconfig $primary_interface up" + echo -e "${RED}修改 MAC 地址失败。请检查日志: $LOG_FILE ${NC}" + fi + fi + + # 重新启用接口 + log_info "重新启用接口 '$primary_interface'..." + if ! sudo ifconfig "$primary_interface" up; then + log_error "重新启用接口 '$primary_interface' 失败。" + echo -e "${RED}重新启用网络接口失败。请检查日志: $LOG_FILE ${NC}" + # 即使启用失败,也报告 MAC 修改尝试的结果 + if $mac_change_success; then + echo -e "${YELLOW}MAC 地址已修改,但重新启用接口失败。请手动检查网络连接。${NC}" fi - echo -e "${GREEN}已临时修改接口 '$primary_interface' 的 MAC 地址。重启后恢复。${NC}" else - log_error "修改接口 '$primary_interface' 的 MAC 地址失败。" - log_error "请检查接口名称是否正确,或尝试手动执行: sudo ifconfig $primary_interface ether <新MAC地址>" - echo -e "${RED}修改 MAC 地址失败。请检查日志: $LOG_FILE ${NC}" - # 即使失败也继续执行脚本的其他部分 + log_info "接口 '$primary_interface' 已重新启用。等待网络恢复..." + sleep 2 # 等待网络恢复 + # Optional: Add a network connectivity check here + if $mac_change_success; then + local final_mac_check=$(ifconfig "$primary_interface" | awk '/ether/{print $2}') + log_info "最终验证新 MAC 地址 (接口启用状态下): $final_mac_check" + if [ "$final_mac_check" == "$random_mac" ]; then + echo -e "${GREEN}已成功临时修改接口 '$primary_interface' 的 MAC 地址。重启后恢复。${NC}" + else + log_warn "最终验证失败,MAC 地址可能未生效或已被重置。" + echo -e "${YELLOW}MAC 地址修改尝试完成,但最终验证失败。请检查接口状态和日志。${NC}" + fi + else + echo -e "${RED}MAC 地址修改尝试失败。请检查日志: $LOG_FILE ${NC}" + fi fi + echo } @@ -494,7 +536,6 @@ modify_cursor_app_files() { log_info "成功修改文件: ${file/$temp_dir\//}" else log_error "修改 x-cursor-checksum 设置代码失败" - echo "[ERROR] 替换 x-cursor-checksum 设置代码失败" >> "$LOG_FILE" cp "${file}.bak" "$file" fi else