Chrome
浏览器输入:chrome://flags/#enable-webrtc-hide-local-ips-with-mdns
把 Anonymize local IPs exposed by WebRTC 设置为 disabled ( 刷新程序,IP正常显示 )
java
// 获取本机IP
async function getUserIp() {
let ip = '';
const RTCPeerConnection =
window.RTCPeerConnection ||
window.mozRTCPeerConnection ||
window.webkitRTCPeerConnection;
if (RTCPeerConnection) {
const rtc = new RTCPeerConnection();
await rtc.createDataChannel(''); //创建一个可以发送任意数据的数据通道
await rtc.createOffer(
async (offerDesc) => {
//创建并存储一个sdp数据
await rtc.setLocalDescription(offerDesc);
},
(e) => {
console.log(e);
}
);
return new Promise((resolve) => {
rtc.onicecandidate = (evt) => {
//监听candidate事件
if (evt.candidate) {
console.log('evt:', evt.candidate);
const ip_rule =
/([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/;
const ip_addr = ip_rule.exec(evt.candidate.candidate)[1];
console.log('ip_addr:', ip_addr); //打印获取的IP地址
resolve(ip_addr || '');
}
};
});
}
return ip;
};
getUserIp().then((ip) => {
console.log('===IP===', ip);
});
IE
java
getIP() {
var innerIP = null
var locator = new ActiveXObject("WbemScripting.SWbemLocator");
var service = locator.ConnectServer("."); //连接本机服务器
var properties = service.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration where IPEnabled=TRUE");
//查询使用SQL标准
var e = new Enumerator(properties);
for (; !e.atEnd(); e.moveNext()) {
var p = e.item();
innerIP = p.IPAddress(0)
console.log("innerIP" + innerIP)
if (innerIP != null || innerIP != undefined || innerIP != 'undefined') {
console.log('===IP==='+innerIP)
}
}
},