@@ -183,21 +183,63 @@ change_system_mac_address() {
183183 local random_mac=$( printf ' 02:%02x:%02x:%02x:%02x:%02x' $(( RANDOM% 256 )) $(( RANDOM% 256 )) $(( RANDOM% 256 )) $(( RANDOM% 256 )) $(( RANDOM% 256 )) )
184184 log_info " 生成新的随机 MAC 地址: $random_mac "
185185
186- log_info " 执行命令: sudo ifconfig $primary_interface ether $random_mac "
187- if sudo ifconfig " $primary_interface " ether " $random_mac " ; then
188- log_info " 成功将接口 '$primary_interface ' 的 MAC 地址临时修改为: $random_mac "
189- local new_mac_check=$( ifconfig " $primary_interface " | awk ' /ether/{print $2}' )
190- log_info " 验证新 MAC 地址: $new_mac_check "
191- if [ " $new_mac_check " != " $random_mac " ]; then
192- log_warn " 验证失败,MAC 地址似乎未成功设置。"
186+ local mac_change_success=false
187+
188+ # 临时禁用接口
189+ log_info " 临时禁用接口 '$primary_interface ' 以修改 MAC 地址 (网络会短暂中断)..."
190+ if ! sudo ifconfig " $primary_interface " down; then
191+ log_error " 禁用接口 '$primary_interface ' 失败,跳过 MAC 地址修改。"
192+ echo -e " ${RED} 禁用网络接口失败。请检查日志: $LOG_FILE ${NC} "
193+ # 即使禁用失败,仍然尝试启用接口
194+ else
195+ log_info " 接口 '$primary_interface ' 已禁用,等待1秒..."
196+ sleep 1 # 添加短暂延迟确保接口状态改变
197+
198+ # 尝试修改 MAC 地址
199+ log_info " 尝试执行命令: sudo ifconfig $primary_interface ether $random_mac "
200+ if sudo ifconfig " $primary_interface " ether " $random_mac " ; then
201+ log_info " 尝试修改接口 '$primary_interface ' 的 MAC 地址为: $random_mac [成功]"
202+ local new_mac_check=$( ifconfig " $primary_interface " | awk ' /ether/{print $2}' )
203+ log_info " 验证新 MAC 地址 (接口禁用状态下): $new_mac_check "
204+ if [ " $new_mac_check " != " $random_mac " ]; then
205+ log_warn " 验证失败,MAC 地址似乎未成功设置 (接口禁用状态下)。"
206+ else
207+ mac_change_success=true
208+ fi
209+ else
210+ log_error " 尝试修改接口 '$primary_interface ' 的 MAC 地址失败。"
211+ log_error " 请检查接口名称是否正确,或尝试手动执行: sudo ifconfig $primary_interface down && sudo ifconfig $primary_interface ether <新MAC地址> && sudo ifconfig $primary_interface up"
212+ echo -e " ${RED} 修改 MAC 地址失败。请检查日志: $LOG_FILE ${NC} "
213+ fi
214+ fi
215+
216+ # 重新启用接口
217+ log_info " 重新启用接口 '$primary_interface '..."
218+ if ! sudo ifconfig " $primary_interface " up; then
219+ log_error " 重新启用接口 '$primary_interface ' 失败。"
220+ echo -e " ${RED} 重新启用网络接口失败。请检查日志: $LOG_FILE ${NC} "
221+ # 即使启用失败,也报告 MAC 修改尝试的结果
222+ if $mac_change_success ; then
223+ echo -e " ${YELLOW} MAC 地址已修改,但重新启用接口失败。请手动检查网络连接。${NC} "
193224 fi
194- echo -e " ${GREEN} 已临时修改接口 '$primary_interface ' 的 MAC 地址。重启后恢复。${NC} "
195225 else
196- log_error " 修改接口 '$primary_interface ' 的 MAC 地址失败。"
197- log_error " 请检查接口名称是否正确,或尝试手动执行: sudo ifconfig $primary_interface ether <新MAC地址>"
198- echo -e " ${RED} 修改 MAC 地址失败。请检查日志: $LOG_FILE ${NC} "
199- # 即使失败也继续执行脚本的其他部分
226+ log_info " 接口 '$primary_interface ' 已重新启用。等待网络恢复..."
227+ sleep 2 # 等待网络恢复
228+ # Optional: Add a network connectivity check here
229+ if $mac_change_success ; then
230+ local final_mac_check=$( ifconfig " $primary_interface " | awk ' /ether/{print $2}' )
231+ log_info " 最终验证新 MAC 地址 (接口启用状态下): $final_mac_check "
232+ if [ " $final_mac_check " == " $random_mac " ]; then
233+ echo -e " ${GREEN} 已成功临时修改接口 '$primary_interface ' 的 MAC 地址。重启后恢复。${NC} "
234+ else
235+ log_warn " 最终验证失败,MAC 地址可能未生效或已被重置。"
236+ echo -e " ${YELLOW} MAC 地址修改尝试完成,但最终验证失败。请检查接口状态和日志。${NC} "
237+ fi
238+ else
239+ echo -e " ${RED} MAC 地址修改尝试失败。请检查日志: $LOG_FILE ${NC} "
240+ fi
200241 fi
242+
201243 echo
202244}
203245
@@ -494,7 +536,6 @@ modify_cursor_app_files() {
494536 log_info " 成功修改文件: ${file/ $temp_dir \/ / } "
495537 else
496538 log_error " 修改 x-cursor-checksum 设置代码失败"
497- echo " [ERROR] 替换 x-cursor-checksum 设置代码失败" >> " $LOG_FILE "
498539 cp " ${file} .bak" " $file "
499540 fi
500541 else
0 commit comments