背景:
公司大晚上的要上线新项目,上线之初,正式服只可以对内部人员打开内测,不可以对外打开。如果需要介入运维的话,需要停掉以前的地址,然后为内部人员另起一个临时地址,正式体验完毕之后,才会将以前的地址重新开放,并废弃掉临时地址。这种操作比较繁杂,并且消耗运维时间,因此我们想能不能通过开发就解决问题。
解决办法:
基于整个公司对外有同一个ip出口,作为一个运维小白,开发脑残,想到了一种实现办法,就是通过前端或者是后端,识别客户端的远程真实ip,在上线之初,只对当前的公司ip开放。
实现步骤:
一、获取ip
百度搜索"ip",如下图,获取当前公司ip
你可以用几个同事的电脑重复试验这件事,来确定此事
二、代码处理
(1)后端(php):
我首先尝试用php写,但是我发现,php的$_SERVER变量中并没有我要的ip地址,于是,我换成了前端的方式(如果大家知道怎么获取,可以留言告诉我,抱拳)
(2)前端(js):
使用搜狐接口(兼容性很强):
<script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>
<script type="text/javascript">
console.log(returnCitySN["cip"]+','+returnCitySN["cname"]);
if(returnCitySN["cip"] !== '你们公司对外ip'){
location.href = '跳转停服通知地址.html';
}
</script>
三、上线
四、改回来,再次上线
如此简单,你学会了吗?
如果有更好的处理办法的小伙伴,欢迎评论分享,比心