亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaScript實(shí)現(xiàn)獲取本機(jī)IP地址

 更新時(shí)間:2024年07月01日 16:50:03   作者:@web網(wǎng)頁(yè)精選  
這篇文章主要介紹了JavaScript實(shí)現(xiàn)獲取本機(jī)IP地址方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

獲取本機(jī)IP地址是前端工程師經(jīng)常需要處理的問題。

JavaScript 有幾種方法可以獲取客戶端的IP地址。

下面是三種獲取本機(jī)IP的方法。

方法1:使用第三方 API

一種獲取客戶端IP地址的最簡(jiǎn)單方法是使用第三方API。

可以使用一些免費(fèi)API,例如ipify.org等來(lái)獲取IP地址。

下面的代碼片段展示了如何使用 JavaScript 和 API 獲取本機(jī)IP地址。

fetch('https://api.ipify.org?format=json')
.then(response => response.json())
.then(json => console.log(json.ip));

方法2:使用 WebRTC(需要用戶授權(quán))

WebRTC 是一種 JavaScript API,用于在瀏覽器之間直接傳輸數(shù)據(jù)。

它也可以用于獲取客戶端IP地址。

該方法通常比使用API更快速和可靠。

以下是一些使用 WebRTC 獲取IP地址的代碼。

var myPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
var pc = new myPeerConnection({iceServers:[]}), noop = function(){}; 
var localIPs = {};
pc.createDataChannel("");
pc.createOffer().then(function (sdp) {
sdp.sdp.split('\n').forEach(function (line) { 
if (line.indexOf('candidate') < 0) return;
line.match(ipRegex).forEach(function (ip) {
localIPs[ip] = true;
});
});
pc.setLocalDescription(sdp, noop, noop);
}).catch(function (reason) {
console.log(reason);
});
var ipRegex = /([0-9]{1,3}(\.[0-9]{1,3}){3})/;
var ips = Object.keys(localIPs);
console.log(ips[0]);

方法3:使用 DNS 查詢

DNS 是一種用于解析主機(jī)名為 IP 地址的系統(tǒng)。

可以使用 JavaScript DNS 查詢來(lái)獲取本機(jī)IP地址。

下面是如何使用 JavaScript 進(jìn)行DNS查詢的示例代碼。

var request = new XMLHttpRequest();
request.open('GET', 'https://api.ipify.org?format=json', true);
request.onload = function () {
if (request.status >= 200 && request.status < 400) {
var data = JSON.parse(request.responseText);
console.log(data.ip);
}
};
request.onerror = function () {
console.error('Error occurred during the network request');
};
request.send();

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論