替换URL中的IP地址进行访问

记录一下昨天碰到的问题以及解决过程,

背景:最近公司启动一个新的项目,合作伙伴的媒体服务器部署在移动网内,而我司的办公网是电信出口,跨网访问非常慢,经常卡顿;跟合作伙伴沟通,了解到其实有一个电信地址也可以访问媒体服务器,但是后台界面使用的是移动地址;这样就尴尬了,运营人员需要在浏览器的地址栏中手工修改IP才能正常访问,严重影响工作效率;合作伙伴说后台难以修改,只能提供使用移动IP的URL,要么你们就手工替换IP,或者建议贵公司申请一条移动专线。

问题:当浏览器访问地址A时,自动替换成访问地址B同样的路径的URL

解决过程:

1)因为地址A直接是写死的媒体服务器的IP地址,没法通过修改host文件做域名强制解析,这条路不通了;

2)提到重定向,直接就想到了缓冲的重定向能力,那是咱老本行啊,哈哈,这岂能难得倒我;倒也不需要在办公网出口部署重定向设备,当年自己做模拟调试的时候就实现过一个windows机器上的重定向模块,使用winpcap侦听本机报文,构造重定向报文,通过winpcap提供的接口发送给浏览器;不过这个方法有两个问题,一是当时是在32位windows上用的,现在64位系统不知道是否会存在兼容性问题,二是我记得winpcap对无线的支持能力是有限的,不能发伪造报文,这样笔记本用起来就受限了;其实更主要的原因是当时写的调试工具源码并不在手边,还得重新写,有点费劲,不作为首选方案;

3)想起爬梯子的时候经常会接触PAC文件,可以在文件中针对URL写策略,要是PAC支持redirect操作,那就简单了;一番调研下来,PAC能力有限,只支持direct、proxy、socks三个操作,没有redirect能力;

4)研究了一下目前在用的浏览器上的代理管理工具SwitchyOmega,发现也是不行,只能支持proxy和PAC两种方式;

5)在SwitchyOmega分析过程中得到了灵感,虽然SwitchyOmega自己不能做重定向,但是我可以把符合条件的URL访问指定到代理服务器上,在代理服务器配置重定向规则,squid和nginx都是支持的;想想还是太麻烦,这样就增加了一个可能的核心故障点,难不成要申请两台服务器搞个热备,太复杂,还要再考虑更好的方案;

6)集中的代理服务器会带来部署上的困难,于是想到了分布式的代理服务器,记得以前做过一个windows程序,支持简单的代理功能,反正这些数据也不需要做存储管理,直接回个302报文就可以,实现起来很简单;把代理工具运行在每个人的机器上,用SwitchyOmega把指定服务器的访问指向本地代理,代理服务器回复302到另外一个地址,看起来很完美;

7)其实最终的方案是用了浏览器插件(准确的说应该是“扩展”),也不用自己开发,在应用商店找到一个redirector扩展,配置重定向规则,可以直接实现,不需要其他工具,我想这个才是最正确的答案吧,只是因为自己的知识结构中缺少对前端的了解,所以不能一开始就想到浏览器扩展的方案,看来我要花点时间学点前端的东西了。

8)如果自己开发浏览器扩展,应该还有一个很风骚的操作是直接替换页面中的播放URL,有点复杂;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值