js 获取本机ip地址
时间: 2023-08-19 13:03:57 浏览: 50
在 JavaScript 中,我们可以通过向服务器发送请求,然后从响应中获取本机的 IP 地址。以下是一种获取本机 IP 地址的方法,它基于浏览器的 WebRTC API:
```javascript
// 获取本机IP地址
function getLocalIP() {
return new Promise(function(resolve, reject) {
const RTCPeerConnection = window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection;
if (!RTCPeerConnection) {
reject('WebRTC not supported!');
}
const rtc = new RTCPeerConnection({ iceServers: [] });
rtc.createDataChannel('', { reliable: false });
rtc.onicecandidate = function(evt) {
if (evt.candidate) {
resolve(evt.candidate.candidate.match(/(?:[0-9]{1,3}\.){3}[0-9]{1,3}/)[0]);
rtc.close();
}
};
rtc.createOffer(function(offerDesc) {
rtc.setLocalDescription(offerDesc);
}, function(e) {
console.warn('offer failed', e);
});
});
}
// 调用函数获取本机IP地址
getLocalIP().then(function(ip) {
console.log('本机IP地址为:', ip);
}).catch(function(reason) {
console.error(reason);
});
```
该函数返回一个 Promise 对象,该对象异步地获取本机的 IP 地址并将其作为解析的值进行解析。然后可以使用 `.then()` 方法获取 IP 地址,或使用 `.catch()` 方法捕获错误。注意,该方法不适用于所有浏览器。