![JS获取本机IP地址的方法(附上解决浏览器无法获取IP的方法),第1张 JS获取本机IP地址的方法(附上解决浏览器无法获取IP的方法),第1张](/aiimages/JS%E8%8E%B7%E5%8F%96%E6%9C%AC%E6%9C%BAIP%E5%9C%B0%E5%9D%80%E7%9A%84%E6%96%B9%E6%B3%95%EF%BC%88%E9%99%84%E4%B8%8A%E8%A7%A3%E5%86%B3%E6%B5%8F%E8%A7%88%E5%99%A8%E6%97%A0%E6%B3%95%E8%8E%B7%E5%8F%96IP%E7%9A%84%E6%96%B9%E6%B3%95%EF%BC%89.png)
获取本机IP地址: if(typeof window != 'undefined'){ var RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection if (RTCPeerConnection) (()=>{ var rtc = new RTCPeerConnection() rtc.createDataChannel('') //创建一个可以发送任意数据的数据通道 rtc.createOffer( offerDesc => { //创建并存储一个sdp数据 rtc.setLocalDescription(offerDesc) }, e => { console.log(e)}) rtc.onicecandidate =(evt) => { //监听candidate事件 if (evt.candidate) { console.log('evt:',evt.candidate) 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_rule.exec(evt.candidate.candidate)[1] console.log('ip_addr:',ip_addr) //打印获取的IP地址 }} })() else{console.log("没有找到")} } 如果电脑没获取到,基本上是因为浏览器限制了,解除方法如下: 解决方案: 火狐(FireFox) 删除隐藏IP 浏览器输入 about:config 搜索配置 media.peerconnection.enabled 改为false ( 刷新程序,IP正常显示 ) 谷歌(Chrome) 删除隐藏IP 浏览器输入:chrome://flags/#enable-webrtc-hide-local-ips-with-mdns 把 Anonymize local IPs exposed by WebRTC 设置为 disabled ( 刷新程序,IP正常显示 )/**
* 获取本地IP地址
*/
function getLocalIPAddress()
{
var obj = null
var rslt = "127.0.0.1"
try
{
obj = new ActiveXObject("rcbdyctl.Setting")
if (!isNull(obj.GetIPAddress))
{
rslt = obj.GetIPAddress
}
obj = null
}
catch(e)
{
//异常发生
}
return rslt
}