在JavaScript中获取本地IP地址可以通过WebRTC(Web实时通信)技术实现。
一、基础概念
二、示例代码
function getLocalIPs(callback) {
const RTCPeerConnection = window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection;
const ips = {};
if (!RTCPeerConnection) {
callback(ips);
return;
}
const rtc = new RTCPeerConnection({ iceServers: [] });
rtc.createDataChannel('', { reliable: false });
rtc.onicecandidate = function (ice) {
if (!ice ||!ice.candidate ||!ice.candidate.candidate) return;
const ipMatch = /([0 - 9]{1,3}(\.[0 - 9]{1,3}){3})/.exec(ice.candidate.candidate);
if (ipMatch) {
const ip = ipMatch[1];
ips[ip] = true;
callback(ips);
}
};
rtc.createOffer().then(function (offer) {
return rtc.setLocalDescription(offer);
}).catch(function (e) {
console.error(e);
});
}
getLocalIPs(function (ips) {
console.log('本地IP地址:', Object.keys(ips));
});
三、优势
四、应用场景
五、可能遇到的问题及解决方法
领取专属 10元无门槛券
手把手带您无忧上云