ローカルIPと外部IPの両方を取得できます
function determineIPs() {
const pc = new RTCPeerConnection({ iceServers: [ {urls: 'stun:stun.l.google.com:19302'} ] });
pc.createDataChannel('');
pc.createOffer().then(offer => pc.setLocalDescription(offer))
pc.onicecandidate = (ice) => {
if (!ice || !ice.candidate || !ice.candidate.candidate) {
console.log("all done.");
pc.close();
return;
}
let split = ice.candidate.candidate.split(" ");
if (split[7] === "host") {
console.log(`Local IP : ${split[4]}`);
} else {
console.log(`External IP : ${split[4]}`);
}
};
}
determineIPs();
例: https://jsbin.com/zosayiyidu/1/edit?js,console
STUN サーバーは外部 IP 用です。stun:stun.l.google.com:19302 へのアクセスを妨げるプロキシの背後にいないことを確認するか、別の STUN サーバーを使用してください