
js虽然无法直接获取手机IP地址,但是Javascript能够创建Http请求,并且服务器端语言能够检索用户公共IP。换句话说,如果您要检索用户的公共IP,则 必须从请求到任何服务器的依赖,以便检索IP。但是,随着WebRTC的引入,您将能够使用RTCPeerConnection技巧性地检索用户的私有IP。
在本文中,您将学习如何通过一些技巧轻松地检索用户IP(使用纯JavaScript的私有IP和使用第三方服务的公共IP)。
一、使用webRTC(获取内网IP)
<script type="text/javascript">
/**
* Get the user IP throught the webkitRTCPeerConnection
* @param onNewIP {Function} listener function to expose the IP locally
* @return undefined
*/
function getUserIP(onNewIP) {
// onNewIp - your listener function for new IPs
//compatibility for firefox and chrome
var myPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
var pc = new myPeerConnection({
iceServers: []
}),
noop = function() {},
localIPs = {},
ipRegex = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g,
key;
function iterateIP(ip) {
if (!localIPs[ip]) onNewIP(ip);
localIPs[ip] = true;
}
//create a bogus data channel
pc.createDataChannel("");
// create offer and set local description
pc.createOffer().then(fu...点击查看剩余70%
网友评论0