User:GeorgeMoney/UserScripts/LoadIpInfo
From Wikipedia, the free encyclopedia
//
//Load IP info. Written by GeorgeMoney using Wizardry Dragon's API
var data_ipinfo = new Object();
function ip_callback(data) {
data_ipinfo = data;
}
try {
var ip_regex = /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/;
if(ip_regex.test(wgTitle)
||ip_regex.test(location.href.split('/')[location.href.split('/').length - 1].split('?')[0])
||ip_regex.test(location.href.split('target=')[1].split('&')[0])
) {
var ip_use = ip_regex.test(wgTitle)?wgTitle:location.href.replace(/^.*?(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}).*?$/, '$1');
document.write('<script src="http://hemlock.knams.wikimedia.org/~wizardrydragon/lookup_hostmask.php?ip='+ip_use+'&format=json&lang='+wgContentLanguage+'&callback=ip_callback"></script>');
document.write(
'<style type="text/css">'+
'.ip-info {'+
'border: 3px solid red;'+
'padding: 5px;'+
'background: honeydew'+
'}'+
'.ip-info li {'+
'margin-left: 2em;'+
'}'+
'</style>');
addOnloadHook(function() {
var tbs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
addlilink(tbs, "javascript:/*void(load_ipinfo()); */void(get_ipinfo());", "ip info", 'ca-ipinfo', 'Get ip info');
});
function iterate_data(newdiv, dat) {
for(var x in dat) {
if(typeof dat[x] == 'object') {
iterate_data(newdiv, dat[x]);
} else {
newdiv.innerHTML += '<li><b>'+x+'</b>: '+dat[x]+'</li>\n';
}
}
}
function load_ipinfo() {
var script = document.createElement('script');
script.src = 'http://hemlock.knams.wikimedia.org/~wizardrydragon/lookup_hostmask.php?ip='+ip_use+'&format=json&lang='+wgContentLanguage+'&callback=ip_callback';
document.getElementsByTagName('head')[0].appendChild(script);
}
function get_ipinfo() {
var newdiv = document.createElement('div');
newdiv.className = 'ip-info';
newdiv.id = 'ip-info';
newdiv.innerHTML = 'IP info for '+ip_use+' <small>(retrieved from <a href="http://hemlock.knams.wikimedia.org/~wizardrydragon/lookup_hostmask.php?ip='+ip_use+'&lang='+wgContentLanguage+'">http://hemlock.knams.wikimedia.org/~wizardrydragon/lookup_hostmask.php?ip='+ip_use+'&lang='+wgContentLanguage+'</a></small>)<br>';
newdiv.innerHTML += '<ul>';
iterate_data(newdiv, data_ipinfo);
newdiv.innerHTML += '</ul>';
document.getElementById('content').insertBefore(newdiv, document.getElementById('content').getElementsByTagName('h1')[0].nextSibling);
document.getElementById('ca-ipinfo').firstChild.innerHTML = 'Collapse IP info';
document.getElementById('ca-ipinfo').firstChild.href = 'javascript:void(hide_ipinfo())';
}
function hide_ipinfo() {
document.getElementById('ca-ipinfo').firstChild.innerHTML = 'ip info';
document.getElementById('ca-ipinfo').firstChild.href = 'javascript:void(show_ipinfo())';
document.getElementById('ip-info').style.display = 'none';
}
function show_ipinfo() {
document.getElementById('ca-ipinfo').firstChild.innerHTML = 'Collapse IP info';
document.getElementById('ca-ipinfo').firstChild.href = 'javascript:void(hide_ipinfo())';
document.getElementById('ip-info').style.display = 'block';
}
}
} catch(e) { }
//

