如何用js獲取ip地址
如何用 JavaScript 獲取 IP 地址
直接獲取
WebRTC API
async function getIP() {
const configuration = {
iceServers: [
{
urls: ['stun:stun.l.google:19302']
}
]
};
const peerConnection = new RTCPeerConnection(configuration);
const iceCandidate = await new Promise((resolve) => {
peerConnection.onicecandidate = (e) => {
if (e.candidate && e.candidate.type === 'srflx') {
resolve(e.candidate.address);
}
};
});
peerConnection.close();
return iceCandidate;
}
navigator.mediaDevices.getUserMedia()
async function getIP() {
const mediaStream = await navigator.mediaDevices.getUserMedia({ video: false, audio: false });
const peerConnection = new RTCPeerConnection();
const sender = peerConnection.addTrack(mediaStream.getTracks()[0], mediaStream);
const iceCandidate = await new Promise((resolve) => {
peerConnection.onicecandidate = (e) => {
if (e.candidate && e.candidate.type === 'srflx') {
resolve(e.candidate.address);
}
};
});
sender.stop();
peerConnection.close();
return iceCandidate;
}
通過服務器代理
使用 AJAX 或 fetch
向服務器發送請求,服務器響應中包含 IP 地址。
async function getIP() {
const response = await fetch('/get-ip');
const data = await response.json();
return data.ip;
}
注意事項
WebRTC API 和 navigator.mediaDevices.getUserMedia() 只能在安全連接(HTTPS)上使用。
服務器代理方法需要后端支持。
獲取到的 IP 地址可能是本地 IP 地址,而不是外部 IP 地址。
上一篇:vue中的watch什么意思
下一篇:vue動態表單是什么意思
相關推薦
-
PHP 應用程序性能優化中 Web 服務器配置的調優
通過調優 web 服務器配置,可以優化 php 應用程序性能,具體方法包括:調整線程池大小,優化并發請求處理;設置 keepalive 超時,平衡延遲和資源消耗;設置連接限制,防止資源耗盡;啟用 gz
-
navicat能連接服務器的數據庫嗎
Navicat 能否連接服務器數據庫?答案: 是詳細說明:Navicat 是一個數據庫管理工具,可以連接到各種數據庫服務器,包括:MySQLMariaDBSQL ServerOraclePostgre
-
navicat如何打開關閉的服務器
如何打開關閉的服務器打開關閉的服務器要打開關閉的服務器,請按照以下步驟操作:關閉服務器要關閉服務器,請按照以下步驟操作:詳細步驟:打開關閉的服務器關閉服務器
-
C++ 函數常量引用參數傳遞的注意事項
常量引用參數傳遞可確保函數內參數不變性,有以下優勢:參數不可變性:函數無法修改常量引用參數。提高效率:無需創建參數副本。錯誤檢測:嘗試修改常量引用參數會觸發編譯時錯誤。C++ 函數常量引用參數傳遞的注
-
golang函數返回值的注意事項
函數返回值類型須與簽名相匹配。函數可返回多個值或不返回值,后者使用 () 表示。return 語句可提前結束函數并返回給定值。多個返回值使用 return 多個值返回。Go 語言函數返回值的注意事項在















