程序员如何自制酒店 Wi-Fi?

macchanger登场

有一个非常有用的命令行工具叫做macchanger,你可以利用这个工具修改、随机获取和恢复设备上的MAC地址。我的基本思路是定期地(每20分钟)随机化我们的MAC地址,然后就可以无限地使用免费Wi-Fi了。
首先你需要运行三个小命令。这一步是必需的,因为在网络接口连接到路由器时,macchanger无法工作。

     # Bring network interface down
       ifconfig wlp3s0 down

     # Get random MAC address
       macchanger -r wlp3s0

     # Bring the interface back up
      ifconfig wlp3s0 up


上述命令中的wlp3s0是我的网络接口名称,你可以通过运行ip a找到你的网络接口名称。在运行这些命令时,你的浏览器会自动启动,而且你会看到一个页面要求你选择付费网络还是试用20分钟。试用到时间后,你可以再次运行命令,如此反复即可。

Selenium登场

  首先,让我们将这些命令放到一边,使用os模块来运行脚本中的macchanger。
    import os
    interface = 'wlp3s0'
    os.system(f'sudo ifconfig {interface} down')
    os.system(f'sudo macchanger -r {interface}')
    os.system(f'sudo ifconfig {interface} up')

在执行了这些命令之后,我们的计算机应该可以作为完全不同的设备自动连接到网络。让我们启动浏览器并尝试使用网络。

d = webdriver.Chrome()
d.get('http://example.com')
d.get('https://www.wifiportal.example/cp/sponsored.php')

上述spons.php的URL就是我选择“免费Wi-Fi”链接后跳转到的页面,因此脚本应该可以打开注册表,供我们填写表格。

我住的这家酒店要求我填写电子邮件和全名。如果你遇到更多字段,那么也可以按照这种方法填写完整。

num   = random.randint(0, 99999)
email = f'test{num}@gmail.com'

d.find_element_by_name('email').send_keys(email)
d.find_element_by_name('name').send_keys('John Doe\n')

这段脚本可以填写好表格,并按Enter键提交。在这之后,门户网站问我是否要订阅他们的电子邮件或类似的东西。当然,我们可以看都不看就点击拒绝,然后关闭浏览器。

d.find_elements_by_class_name('reject')[0].click()
d.close()

做完这些,你就有互联网了。如果你发现Wi-Fi没了,随时可以再运行这个脚本,或者你也可以把它放在一个定时任务或 while循环中。

猜你喜欢

转载自blog.csdn.net/qq_36142146/article/details/85694252