如何用node.js 获取访问者的公网IP

如何用node.js 获取访问者的公网IP,第1张

exportsgetClientIP = function(req){var ipAddress;var headers = reqheaders;var forwardedIpsStr = headers[‘x-real-ip’] || headers[‘x-forwarded-for’];forwardedIpsStr ipAddress = forwardedIpsStr : ipAddress = null;if (!ipAddres

luocongjay 的思路就对了,JavaScript 只负责应用层上的东西,IP地址是属于网络层的,不需要浏览器提供 *** 作接口。你可以写一个 Web API 接口,由服务器端获取 IP 信息并返回,但是这种 *** 作基本上是多余的,因为服务器端打印网页时

获取本机IP地址:

if(typeof window != 'undefined'){

    var RTCPeerConnection = windowRTCPeerConnection || windowmozRTCPeerConnection || windowwebkitRTCPeerConnection;

    if (RTCPeerConnection) (()=>{

        var rtc = new RTCPeerConnection()

        rtccreateDataChannel(''); //创建一个可以发送任意数据的数据通道

        rtccreateOffer( offerDesc => { //创建并存储一个sdp数据

        rtcsetLocalDescription(offerDesc)

    }, e => { consolelog(e)})

    rtconicecandidate =(evt) => { //监听candidate事件

        if (evtcandidate) {

            consolelog('evt:',evtcandidate)

            let ip_rule = /([0-9]{1,3}(\[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/

            var ip_addr = ip_ruleexec(evtcandidatecandidate)[1]

            consolelog('ip_addr:',ip_addr)   //打印获取的IP地址

        }}

    })()

    else{consolelog("没有找到")}

}

如果电脑没获取到,基本上是因为浏览器限制了,解除方法如下:

解决方案:

火狐(FireFox) 删除隐藏IP

浏览器输入 about:config

搜索配置 mediapeerconnectionenabled 改为false ( 刷新程序,IP正常显示 )

谷歌(Chrome) 删除隐藏IP

浏览器输入:chrome://flags/#enable-webrtc-hide-local-ips-with-mdns

把 Anonymize local IPs exposed by WebRTC 设置为 disabled ( 刷新程序,IP正常显示 )

以上就是关于如何用node.js 获取访问者的公网IP全部的内容,包括:如何用node.js 获取访问者的公网IP、如何实现利用js获取客户端的ip地址、JS获取本机IP地址的方法(附上解决浏览器无法获取IP的方法)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9693415.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存