JS获取本机IP地址的2种方法
在JavaScript中,有多种方法可以获取本机的IP地址。下面将介绍两种常用的方法,并提供示例说明。
方法一:使用WebRTC API
WebRTC(Web实时通信)是一种现代的浏览器API,可以用于实现实时音视频通信。通过WebRTC API,我们可以获取本机的IP地址。
// 创建一个RTCPeerConnection对象
const pc = new RTCPeerConnection();
// 创建一个虚拟的数据通道
pc.createDataChannel('');
// 监听icecandidate事件,获取本机的IP地址
pc.onicecandidate = function(event) {
if (event.candidate) {
const ipRegex = /([0-9]{1,3}(\\.[0-9]{1,3}){3})/;
const ipAddress = ipRegex.exec(event.candidate.candidate)[1];
console.log('本机IP地址:', ipAddress);
}
};
// 创建一个虚拟的offer,触发icecandidate事件
pc.createOffer()
.then(offer => pc.setLocalDescription(offer))
.catch(error => console.error(error));
上述代码中,我们创建了一个RTCPeerConnection对象,并通过createDataChannel方法创建了一个虚拟的数据通道。然后,我们监听icecandidate事件,在事件处理函数中提取出IP地址并打印出来。最后,我们创建了一个虚拟的offer,并通过setLocalDescription方法触发icecandidate事件。
方法二:使用第三方服务
除了使用WebRTC API,我们还可以通过调用第三方服务来获取本机的IP地址。其中,一个常用的服务是ipify。
// 使用fetch函数调用ipify的API
fetch('https://api.ipify.org?format=json')
.then(response => response.json())
.then(data => {
const ipAddress = data.ip;
console.log('本机IP地址:', ipAddress);
})
.catch(error => console.error(error));
上述代码中,我们使用fetch函数调用ipify的API,并通过response.json()方法解析返回的JSON数据。然后,我们提取出IP地址并打印出来。
这两种方法都可以用于获取本机的IP地址,具体选择哪种方法取决于你的需求和环境。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS获取本机IP地址的2种方法 - Python技术站