Typecho Access 插件IP地址自动显示

引言

对于Access插件的一些魔改,这里引用了自带的接口和高德的API

已知问题

(AMAP) 对于IP返回的多个地址有可能是两个,也有可能是一个,没有做判断,直接进行调用,懒得改了。

目的

不用一个一个的点击了,直接就能知道访问者IP所对应的地址

过程

修改Access目录里的page中的Console.php,在结尾处加上下面的代码。已经修改了异常。

<!-- 注入的脚本 查询所有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>

评论 0

还没有评论,来说点什么吧。

提交后需要审核才会公开。