微信小程序获取IP方法之一

getIP: function (e) {
        var that = this;
        wx.request({
            /*  //方法1            
            url: "https://www.jeremy7.cn/springboot-schedule/holiday/ip-address",
            success(res) {
                var data = res.data;
                that.setData({
                    localAddress: data,
                    localIp: data.ip
                })
                console.log("IP:",that.data.localIp)
            },
            fail: console.error
            */

            //方法2
            url: "http://ip-api.com/json",
            success: function (e) {
                that.localIp = e.data.query
                that.setData({
                    localIp: e.data.query,
                })
                
                //通过ip获取当前经纬度
                wx.request({
                    url: 'http://ip-api.com/json/' + that.localIp + '?lang=zh-CN',
                    method: 'GET',
                    header: {
                        'content-type': 'application/x-www-form-urlencoded'
                    },
                    success: function (res) {
                        let lat = res.data.lat; //纬度
                        let lon = res.data.lon; //经度
                        let regionName = res.data.regionName; //城市 'http://ip-api.com/json/' + that.localIp
                        console.log("wx.request返回数据=>", that.localIp,"regionName:", regionName, "lat=", lat, "lon=", lon)                        
                    }
                });
            },
            fail: console.error
        })
        
    }

测试结果:IP地址正确,省份正确,城市可能有错误(怀疑原因是因为得到的经纬度错误)

### 如何在微信小程序获取 IP 地址 #### 使用 HTTPS 接口请求外部服务来获取 IP 地址 为了在微信小程序获取用户的公网 IP 地址,可以通过调用微信小程序提供的 `wx.request` API 向支持此功能的服务端发送 HTTP 请求。下面是一个简单的例子,展示了如何通过特定的接口来获得当前设备连接网络时所使用的公共 IP 地址[^2]。 ```javascript // 获取IP地址 wx.request({ url: 'https://tianqiapi.com/ip/', data: {}, method: 'POST', header: { 'content-type': 'application/x-www-form-urlencoded' }, success: function(res) { console.log('IP地址: ' + res.data.ip); } }); ``` 需要注意的是,在实际应用过程中应当选择稳定可靠的第三方API服务商,并确保遵循其文档说明配置正确的参数以及处理响应数据。此外,由于涉及到隐私保护政策,开发者应该了解并遵守相关法律法规对于收集和使用个人身份信息的规定。 #### 关于获取服务器 IP 的情况 如果目标是在微信小程序里显示与该程序交互的具体服务器 IP,则通常情况下并不推荐这样做,因为这可能暴露内部架构细节给最终用户带来安全隐患。不过如果是出于调试目的想要知道某次请求到达了哪个具体的服务器实例(比如负载均衡后的多个后端节点之一),可以在设计后台逻辑时让每次HTTP回应都携带上源站的信息作为自定义头部字段返回给前端展示即可[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值