js来源IP限制

本文介绍了一段用于验证网页访问来源的JavaScript脚本,该脚本通过检查referrer来判断访问是否来自授权地址。若不符合预设的来源,则将用户重定向到失败页面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<script type="text/javascript">
function auth(doc){
var laiyuan = doc.referrer;
var isAuth = "0";
if(isAuth==0){// not auth
if(laiyuan!=null && laiyuan!=''){
var lai01 = laiyuan.substr(0,16);//http://127.0.0.1
var lai02 = laiyuan.substr(0,19);//http://172.20.0.205
var lai03 = laiyuan.substr(0,28);//http://www.panshao.com/myweb
if(lai01 !='http://127.0.0.1' && lai02 !='http://172.20.0.205'
&& lai03 !='http://www.panshao.com/myweb') {//no right
return 0;
}else{// has right
return 1;
}
}else{
return 0;
}
}
}

var laiyuan1 = document.referrer;
var flag = auth(document);
if(flag==0){
window.location.href='<%=root %>'+"/fail.jsp";
}
</script>
<think>我们被要求用中文回答,并在最后提出3-5个相关问题,且第一行必须是“§§相关问题§§”,然后紧接着列出问题,禁止换行分散。 首先,我们需要写一个关于“IP归属地免费查询JS代码”的回答。由于是JS代码,我们可以提供一个简单的示例,通常这种查询需要调用一个第三方的API。 注意:免费API可能有调用限制,且稳定性不能保证,这里仅作为示例。 我们可以使用一个公共的免费IP查询API,例如:ipapi.co(注意:免费版有调用次数限制,且需要注明来源,实际使用时请遵守API提供方的规则)。 下面是一个简单的示例,使用JavaScript(在浏览器环境中)通过fetch API来获取当前IP的归属地信息。 注意:由于浏览器的同源策略,我们直接调用第三方API可能会遇到CORS问题。幸运的是,一些API服务已经设置了CORS允许,所以我们可以直接调用。但并不是所有API都支持,如果遇到CORS问题,可能需要通过自己的服务器代理。 这里我们使用ipapi.co的API,它支持返回JSON格式的数据,并且免费套餐允许一定次数的调用。 示例代码: 这个函数会获取当前用户的IP归属地信息(因为API默认返回调用者的IP信息)并打印到控制台。如果需要查询其他IP,可以修改url。 但是注意:免费版ipapi.co要求必须注明来源,并且不能用于商业用途,同时有调用次数限制(如1000次/天)。另外,由于是免费服务,稳定性不能保证。 我们写一个简单的函数:</think>以下是一个使用第三方API实现IP归属地免费查询的JavaScript代码示例。该代码通过调用`ipapi.co`的免费接口(注意:免费套餐有每日1000次请求限制)获取IP地址的地理位置信息: ```javascript async function getIPLocation() { try { // 调用免费API(注意:实际使用时需遵守API提供方的使用条款) const response = await fetch('https://ipapi.co/json/'); const data = await response.json(); // 解析关键数据 const result = ` IP地址: ${data.ip} 归属地: ${data.city}, ${data.region}, ${data.country_name} 运营商: ${data.org || '未知'} 经纬度: (${data.latitude}, ${data.longitude})`; console.log(result); return result; } catch (error) { console.error("查询失败:", error); return "IP归属地查询服务不可用"; } } // 执行查询 getIPLocation(); ``` ### 使用说明: 1. **浏览器环境**:直接在浏览器控制台运行 2. **Node.js环境**:需先安装`node-fetch`(`npm install node-fetch`) 3. **免费API限制**: - 每日最多1000次请求 - 需标注数据来源(非商业用途) - 响应速度可能较慢(约1秒) ### 替代API推荐: 1. `ip-api.com/json/`(需后端调用) 2. `https://api.ipgeolocation.io/`(免费套餐限3万次/月)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值