我正在寻找Localhost IP地址192.168.0.x.我找到了可以找到Localhost IP地址的代码。
但是,我想将值存储到一个变量中,该变量可以让其他函数访问它。像var IPaddress =“192.168.0.x”;
我是新手,我不知道该怎么做。有谁能告诉我?非常感谢
var IPaddress;
$( document ).ready(function() {
findIP(function(ip) {
IPaddress = ip
});
new QRCode(document.getElementById("qrcode"), "http://google.com");
console.log(IPaddress);
});
function findIP(onNewIP) { // onNewIp - your listener function for new IPs
var myPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection; //compatibility for firefox and chrome
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 ipIterate(ip) {
if (!localIPs[ip]) onNewIP(ip);
localIPs[ip] = true;
}
pc.createDataChannel(""); //create a bogus data channel
pc.createOffer(function(sdp) {
sdp.sdp.split('\n').forEach(function(line) {
if (line.indexOf('candidate') < 0) return;
line.match(ipRegex).forEach(ipIterate);
});
pc.setLocalDescription(sdp, noop, noop);
}, noop); // create offer and set local description
pc.onicecandidate = function(ice) { //listen for candidate events
if (!ice || !ice.candidate || !ice.candidate.candidate || !ice.candidate.candidate.match(ipRegex)) return;
ice.candidate.candidate.match(ipRegex).forEach(ipIterate);
};
}
function addIP(ip) {
console.log(ip);
}
答案 0 :(得分:0)
您还可以将该变量显式设置为window
的属性,以使其可全局访问。
findIP(function(ip) {
window.IPaddress = ip
})
修改
要在全局变量中存储值,只需在全局范围中定义
即可var ipAddress = getIPAddress() // assumes you have a function for this
或
window.ipAddress = getIPAddress()
在函数之外声明的任何变量都是全局变量。
// global variable
var someGlobalThing = 'something global'
function someFunction() {
// local variable
var someLocalThing = 'something local'
console.log(someGlobalThing) // logs 'something global'
}
console.log(someLocalThing) // logs undefined
答案 1 :(得分:0)
只需在任何函数外部定义var
,它就是全局的,并且可由所有其他函数访问。据说它具有全球范围。
var test = "this is a test";
var test2 = false;
在浏览器中渲染,打开浏览器开发者控制台并输入test
,您将看到以下内容。从控制台重置它以证明您有权写入它。
答案 2 :(得分:0)
findIP有异步调用。
在你的例子中,console.log在调用回调函数之前发生。
您希望在回调中放置需要访问ip参数的其他函数:
findIP(function(ip) {
console.log(ip);
// other functions
});