var is_g = null; function isPrivateIP(ip) { var parts = ip.split('.'); return parts[0] === '10' || parts[0] === '0' || (parts[0] === '172' && (parseInt(parts[1], 10) >= 16 && parseInt(parts[1], 10) <= 31)) || (parts[0] === '192' && parts[1] === '168'); } function check_dns(ip) { //var ip = '5.22.190.198'; var parts = ip.split('.'); var url = 'https://dns.google/resolve?name='+parts[3]+'.'+parts[2]+'.'+parts[1]+'.'+parts[0]+'.in-addr.arpa&type=PTR&cd=true'; fetch(url) .then(function(response) { return response.json(); // data into json }) .then(function(data) { if(typeof data === 'object'){ if(typeof data.Answer === 'object' && typeof data.Answer[0] === 'object' && typeof data.Answer[0].data === 'string'){ if(data.Answer[0].data.includes('cache.google.com')){ //console.log(data.Answer[0].data); is_g = true; }else{ is_g = false; } }else{ is_g = false; } } }) .catch(function(error) { console.log(error); }); } getIPs().then(function(res) { res.forEach(function(r){ if(r.includes('.')){ console.log(r); if(!isPrivateIP(r)){ //console.log(r+' not private'); check_dns(r); } } }); });