我无法通过JS代码捕获iPad设备的IP地址。这在Windows系统中工作正常
下面是代码:
var findIP = new Promise(r => {
var w = window,
a = new(w.RTCPeerConnection || w.mozRTCPeerConnection || w.webkitRTCPeerConnection)({
iceServers: []
}),
b = () => {};
a.createDataChannel("");
a.createOffer(c => a.setLocalDescription(c, b, b), b);
a.onicecandidate = c => {
try {
c.candidate.candidate.match(/([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g).forEach(r)
} catch (e) {}
}
})
findIP.then(function(ip) {
console.log(ip);
})
2条答案
按热度按时间zu0ti5jz1#
在最近的IOS版本中,Apple故意模糊本地IP地址,目的是使设备难以指纹识别。这是非常不幸的,因为如果知道IP地址,我就可以在LAN上查找对等设备了。
IOS返回以下类型的操作系统的地址:9befcb75-3f5e-48f5-9201-744fc7ba406c.local
这可能是一些无用的随机数。
此外,也不需要解析候选字段,因为候选记录中有一个名为“address”的属性,该属性通常将IPv4地址作为字符串。
这段代码可以在Mac桌面上运行,Android也可以,但在iPad/iOS设备上却毫无用处,因为这些设备数量相当多。
qcbq4gxm2#
下面是一个可以用来获取IP地址javascript函数: