Skip to content

Instantly share code, notes, and snippets.

@cssimsek
Last active March 7, 2018 10:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cssimsek/65b54c906d21ba20d4202b80ababf1b0 to your computer and use it in GitHub Desktop.
Save cssimsek/65b54c906d21ba20d4202b80ababf1b0 to your computer and use it in GitHub Desktop.
/*
* Get Human Readable Location
* Uses https://api.ipify.org to get ip
* Uses https://freegeoip.net to get location info
*/
window.getPublicIP = function(json) {
makeScript("https://freegeoip.net/json/"+json.ip+"?",{callback:"getRealLocation"});
}
window.getRealLocation = function(json){
console.log(JSON.stringify(json));
}
function makeScript(host,qpObj){
let _script = document.createElement("script");
_script.type="application/javascript";
_script.src = host;
if(qpObj){
for(let key in qpObj){
_script.src+=key+"="+qpObj[key]+"&";
}
}
let firstScript = document.getElementsByTagName('script')[0];
firstScript.parentNode.insertBefore(_script, firstScript);
}
//Invoke first call to fetch ip
makeScript("https://api.ipify.org?",{format:"jsonp",callback:"getPublicIP"});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment