使用Shell脚本更改您的MAC地址(2019)

2021-02-09 20:18:53

有一阵子,我保存了Windows或OS X中“更改或欺骗MAC地址”的注释,因此,如果我使用的WiFi连接将我限制为三十分钟或一个小时,则可以“欺骗”新的MAC地址,当我重新连接到wifi时,Access Point认为我在新的独特设备上。

记录一下-当我长时间在咖啡店工作时,请确保定期购买产品以支付我的时间。因此,如果您欺骗自己的MAC地址以长时间使用wifi,则可能需要确保在运行脚本时花费5美元或10美元。

现在,如果您认为我实际上是在这里节省自己的时间,那我绝对不会。原因如下:

对于MAC上的某人,以下是欺骗您MAC地址的步骤:

ifconfig en0 | grep ether#其中之一将返回与ifconfig匹配的MAC地址。 grep ether#查找currentifconfig时看到的值。 grep ether#mac address.ifconfig zh_CN | grep ether#不断增加`en0`的值,直到用完#个设备

对我来说,第一个结果与我从Option +单击wifi网络获得的MAC地址匹配。

这意味着我将使用en0作为即将更新的[E] ther [N] et适配器。

它看起来像是两个数字的六个块,恰好是00000000到11111111的十六进制表示形式。

您可以使用ifconfig将以太网地址(与MAC地址可互换吗?)设置为从openssl命令获得的随机生成的字符串:

#不幸的是,您需要对其进行sudo。 Mac地址周围没有引号sudo ifconfig en0 ether xx:xx:xx:xx:xx:xx:xx#这是完整的命令sudo ifconfig en0 ether 8c:85:90:5a:79:56

这样,您就可以重新连接到wifi网络,它应该将您识别为新设备,并让您进入网络。

#!/ bin / bash echo"嗨!让我们更改我们的mac地址。"回显"步骤1:按住选项键,单击wifi徽标。请注意mac地址"回显"步骤2:点击&断开与网络的连接' "回显"步骤3,请注意哪个以太网适配器与您刚刚看到的mac地址对齐" en0 = $(ifconfig en0 | grep ether)en1 = $(ifconfig en1 | grep ether)en2 = $(ifconfig en2 | grep ether)en3 = $(ifconfig en3 | grep ether)en4 = $(ifconfig en4 | grep ether) en5 = $(ifconfig en5 | grep ether)echo en0是:$ en0 echo en1是:$ en1 echo en2是:$ en2 echo en3是:$ en3 echo en4是:$ en4 echo en5是:$ en5 read -p& #39;步骤4:输入哪个以太网设备与给定的mac地址对齐:' ether_adapter导出ether_adapter = $ ether_adapter mac = $(openssl rand -hex 6 | sed" s / \(.. \)/ \ 1:/ g; s /。$ / /")export mac = $ mac echo btw,这是我们要使用的新的mac地址:$ mac"回显"确定,我们将更改与以下地址关联的mac地址:$ ether_adapter" old_mac = $(ifconfig $ ether_adapter | grep ether)echo"旧值是:$ old_mac" sudo ifconfig $ ether_adapter ether $ mac new_mac = $(ifconfig $ ether_adapter | grep ether)echo"新值是:$ new_mac"回显"继续并重新连接到wifi。您应该可以加入网络。"

首先,并非所有随机生成的mac地址都是有效的,即使它们通过了我测试所针对的在线mac地址验证器也是如此。 AskUbuntu很好地分享了正在发生的事情。

我不想手动建立有效的MAC地址;我只是注意到,使用上述脚本,大约有三分之二的尝试更改我的mac地址,但MAC地址没有变化。

因此,此脚本的下一个版本将生成MAC地址并设置当前MAC地址以将生成的MAC地址步骤设置为函数,并继续调用该函数,直到MAC地址更改为止。

#!/ bin / bash#跳过一些行,请阅读-p'步骤4:您要更改哪个设备? (点击返回en0)' ether_adapter如果[-z $ ether_adapter],则ether_adapter =" en0" fi export ether_adapter = $ ether_adaptergenerate_and_set_new_mac_address(){mac = $(openssl rand -hex 6 | sed" s / \(.. \)/ \ 1:/ g; s /。$ / /") export mac = $ mac echo"确定,我们将更改与以下地址关联的mac地址:$ ether_adapter" old_mac = $(ifconfig $ ether_adapter | grep ether)echo"旧值是:$ old_mac" sudo ifconfig $ ether_adapter ether $ mac new_mac = $(ifconfig $ ether_adapter | grep ether)echo"新值是:$ new_mac" } echo $ new_mac echo $ old_mac而[" $ new_mac" ==" $ old_mac" ]做回声"不相同" generate_and_set_new_mac_address完成回显"并重新连接到wifi。您应该可以加入网络。"

我希望在不久的将来,我将研究这个bash脚本并有许多改进方法。现在,它将解决问题。