Loading... # 引言 对于Access插件的一些魔改,这里引用了自带的接口和高德的API # 已知问题 (AMAP) 对于IP返回的多个地址有可能是两个,也有可能是一个,没有做判断,直接进行调用,懒得改了。 # 目的 不用一个一个的点击了,直接就能知道访问者IP所对应的地址 # 过程 修改Access目录里的page中的Console.php,在结尾处加上下面的代码。已经修改了异常。 ```html <!-- 注入的脚本 查询所有ip的地址 --> <script> $.each($("a[data-action=ip]"), function (i, item) { var ip = $(item).text(); $.ajax({ url: 'https://www.zunmx.top/index.php/access/ip.json', method: 'get', dataType: 'json', timeout: 5000, data: { 'ip': $(item).text() }, success: function (data) { if (data.code == 0) { $(item).append("<br/>" + "默认库:" + data.data); amapIP(item, ip); } else { amapIP(item, ip); } }, error: function () { amapIP(item, ip); } }); }) function amapIP(item, ip) { $.ajax({ url: 'https://restapi.amap.com/v3/ip?key=高德Key&type=4', method: 'get', dataType: 'json', data: { 'ip': ip }, success: function (data) { try{ let locations = data.rectangle.split(";"); var sec = 0; for (sec = 0; sec < locations.length; sec++) { if (data.infocode == 10000) { $.ajax({ url: 'https://restapi.amap.com/v3/geocode/regeo?key=高德Key', method: 'get', dataType: 'json', data: { 'location': locations[sec] }, success: function (data) { if (data.status == 1) { $(item).append("<br/>Amap" + sec + ":" + data.regeocode.formatted_address); } else { $(item).append("<br/>" + "-获取失败"); } }, error: function () { $(item).append("<br/>" + "-获取失败"); } }); } else { $(item).append("<br/>" + "-获取失败"); } } }catch{ } }, error: function () { $(item).append("<br/>" + "-获取失败"); } }); } </script> ``` © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏