最近做一个项目,其中涉及到针对输入的特定网址跳转到指定的IP,和DNS 劫持很相似,项目大概是这样的:
1) 电脑上启动一个wifi 共享,创建一个无线连接ap。
2) 手机连接上这个无线AP
3) 手机打开浏览器,输入任意网址,需要跳转到一个特定的网址。
上面的需求有点像在星巴克上网,连接上星巴克的网络之后,打开浏览器会跳转到登陆页面。是一个道理。
在电脑上创建无线ap这个不是很复杂,但是会遇到很多难以解决的问题,各种奇葩问题这里就不说了。主要说说第3步。
在手机上输入任意网址跳转,我是用DNS 劫持来实现的,手机上输入网址之后,肯定会发送一个DNS 查询,只要截获这个查询包,然后返回一个特定的IP地址,就可以实现劫持了。
先说一下实现步骤以及需要注意的地方
1) 电脑创建wifi 之后,会在电脑上虚拟出一个网卡。其他设备连接到这个wifi 之后会自动分配IP,分配的IP 和这个网卡的IP地址是同一个网段的。并且这个网卡的IP 也是网关。