前端获取用户ip地址,并放在请求头上(uniapp和H5)

这篇具有很好参考价值的文章主要介绍了前端获取用户ip地址,并放在请求头上(uniapp和H5)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 今日需求:

         获取用户ip地址,并在每一次请求的时候带上这个ip地址


1、如何获取用户IP地址:

获取 用户ip地址的方式有很多,各大地图的开发者平台都能找到相关的API接口地址,都很牛掰,但是我看了一下,好像不太适合我(懒病犯了~~),所以我就用shohu的接口:

http://pv.sohu.com/cityjson?ie=utf-8

uni.request({
					url: '/sohu/cityjson',
					success: (res) => {
						const reg = /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/;
						let ip = reg.exec(res.data);
						// console.log(ip)
						// console.log(res.data)
						// console.log(ip[0]);
						uni.setStorage({
							key: 'ip',
							data: reg.exec(res.data),
							success: function() {
								// console.log('success');
							},
						});
					}
				});

       当时想的思路很简单,直接用接口地址访问获取ip就可以了,因为我是APP和H5都需要开发。这样的话很显然,H5端必会出现跨域问题,所以我就使用了proxy解决了跨域问题。

2、跨域问题的解决

"devServer" : {
            "port" : 8000,
            "disableHostCheck" : true,
            "proxy" : {
                "/sohu" : {
                    "target" : "http://pv.sohu.com",
                    "changeOrigin" : true,
                    "secure" : false,
                    "pathRewrite" : {
                        "^/sohu" : ""
                    }
                }
            }
        }

前端获取用户ip地址,并放在请求头上(uniapp和H5)

3、如何返回给后端

???很简单对吧!

拿到存储中保存的key就行了,直接放在接口请求头之中。但是,数据并没有传过去,APP端不适用这种方式。如果需要同时满足app和H5的话就需要用到条件编译

以下是完整的app和H5分别获取的ip地址的方式:

            //#ifdef H5    
                 //只执行h5
 				uni.request({
					url: '/sohu/cityjson',
					success: (res) => {
						const reg = /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/;
						let ip = reg.exec(res.data);
						console.log(ip)
						// console.log(res.data)
						// console.log(ip[0]);
						uni.setStorage({
							key: 'ip',
							data: reg.exec(res.data),
							success: function() {
								// console.log('success');
							},
						});
					}
				});
                  //只执行h5
				//  #endif 

				//  #ifdef APP-PLUS 
                   //只执行app
				uni.request({
					url: 'http://pv.sohu.com/cityjson?ie=utf-8',
					method: 'POST',
					success: (res) => {
						const reg = /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/;
						let ip = reg.exec(res.data);
						// console.log(ip[0]);
						uni.setStorage({
							key: 'ip',
							data: reg.exec(res.data),
							success: function() {
								// console.log('success');
							},
						});
					}
				}) 
                //只执行app
				//  #endif 

完美解决~~ 

然后将保存的数据,在你的接口工具中拿到,放在请求头中就可以传给后端了!!!!

前端获取用户ip地址,并放在请求头上(uniapp和H5)

 然后可以在每一次的请求过中都能带上ip地址了!文章来源地址https://www.toymoban.com/news/detail-507929.html

到了这里,关于前端获取用户ip地址,并放在请求头上(uniapp和H5)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java获取请求者IP和地址

    在网上一番寻找,希望能找到一个根据IP解析地址的API,终于不负有心人,让我找到了,可是这个API是一个webservice,于是又学会了webservice调用,这个API来自webxml.com.cn,有着丰富的webservice接口,通过soapui调用情况如下图 http://ws.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?wsdl

    2024年02月06日
    浏览(26)
  • Java如何获取请求的ip 地址?

    2024年02月12日
    浏览(28)
  • http获取用户访问的IP地址

    获取用户访问的IP地址: 如果用户是正常情况下其字典的KEY键名为 REMOTE_ADDR request.META[\\\'REMOTE_ADDR\\\'] 但是有些网站服务器会使用nginx等代理http,或者是该网站做了负载均衡,导致使用remote_addr抓取到的是127.0.0.1,这时使用 HTTP_X_FORWARDED_FOR 才获得是用户的真实IP。推荐使用以下代码

    2024年02月01日
    浏览(40)
  • java获取真实的请求接口ip地址

    在Java程序中获取请求的真实IP地址可以使用以下方法: 使用javax.servlet.http.HttpServletRequest类中的getRemoteAddr()方法,这个方法可以获取请求的IP地址。 可以检查X-Forwarded-For,如果请求是通过代理服务器发送的,那么X-Forwarded-For将包含被代理客户端的IP地址。可以使用HttpServletReque

    2024年02月11日
    浏览(39)
  • Java 获取客户端请求IP地址

    2024年02月15日
    浏览(30)
  • uniapp通过ip获取其地址、经纬度、详细地址:

    1.方法: 查看ip内容:http://pv.sohu.com/cityjson?ie=utf-8 【1】js获取ip地址: 【2】uni-app获取ip地址:(此方法会跨域报错=后续找到解决方法再补充) 【3】使用H5自带的获取位置 【4】使用百度地图获取位置 【5】微信js-sdk自带的API 2.案例: 3.最终效果:

    2024年02月12日
    浏览(34)
  • 前端获取Ip地址

    浏览器不能直接获取本机ip地址,需要调用第三方接口。或者自己提供一个接口来获取。这里提供一个简单的第三方接口来获取ip地址。

    2024年02月16日
    浏览(28)
  • 使用Java获取发送请求的电脑的IP地址

    客户端所有的请求信息都可以通过HttpServletRequest获得,获取客户端ip可以通过getRemoteAddr()获取。 但是如果客户端是通过代理访问我们的服务器,那么getRemoteAddr()获取到的ip就很有可能不是真实的ip,这时候我们可以通过请求头里的x-forwarded-for来获取真实的ip,请求每经一次代理

    2024年02月16日
    浏览(26)
  • 通过 Request 请求获取真实 IP 地址以及对应省份城市

    title: 通过 Request 请求获取真实 IP 地址以及对应省份城市和系统浏览器信息 date: 2022-12-16 16:20:26 tags: GeoIP2 UserAgentUtils categories: 开发实践 cover: https://cover.png feature: false 代码如下,这里的 CommonUtil.isBlank() 为封装的判空方法 1、首先,获取 X-Forwarded-For 中第 0 位的 IP 地址,它在

    2024年02月01日
    浏览(38)
  • vue前端获取本地IP地址

    新建js文件 getIpAddress.js 在index.js文件中添加以下配置

    2024年04月29日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包