JavaScript獲取本機IP地址三種常用方式
獲取本機IP地址是前端工程師經(jīng)常需要處理的問題。JavaScript 有幾種方法可以獲取客戶端的IP地址。下面是三種獲取本機IP的方法。
方法1:使用第三方 API
一種獲取客戶端IP地址的最簡單方法是使用第三方API??梢允褂靡恍┟赓MAPI,例如ipify.org等來獲取IP地址。下面的代碼片段展示了如何使用 JavaScript 和 API 獲取本機IP地址。
<code> fetch('https://api.ipify.org?format=json') .then(response => response.json()) .then(json => console.log(json.ip)); </code>
方法2:使用 WebRTC(需要用戶授權(quán))
WebRTC 是一種 JavaScript API,用于在瀏覽器之間直接傳輸數(shù)據(jù)。它也可以用于獲取客戶端IP地址。該方法通常比使用API更快速和可靠。以下是一些使用 WebRTC 獲取IP地址的代碼。
<code> 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]); </code>
方法3:使用 DNS 查詢
DNS 是一種用于解析主機名為 IP 地址的系統(tǒng)??梢允褂?JavaScript DNS 查詢來獲取本機IP地址。下面是如何使用 JavaScript 進行DNS查詢的示例代碼。
<code> 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(); </code>
總結(jié)
到此這篇關(guān)于JavaScript獲取本機IP地址三種常用方式的文章就介紹到這了,更多相關(guān)JS獲取本機IP地址內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
layer.open提交子頁面的form和layedit文本編輯內(nèi)容的方法
今天小編就為大家分享一篇layer.open提交子頁面的form和layedit文本編輯內(nèi)容的方法,具有好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09js數(shù)字轉(zhuǎn)中文兩種實現(xiàn)方法
在前端開發(fā)中有時候會需要到將阿拉伯數(shù)字轉(zhuǎn)化為中文,當前做個記錄,提供自己之后翻閱,這篇文章主要給大家介紹了關(guān)于js數(shù)字轉(zhuǎn)中文兩種實現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下2023-10-10