User:GeorgeMoney/UserScripts/LoadIpInfo

// //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(' '); document.write(		''+		'.ip-info {'+		'border: 3px solid red;'+		'padding: 5px;'+		'background: honeydew'+		'}'+		'.ip-info li {'+		'margin-left: 2em;'+		'}'+		' '); 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 += ''+x+': '+dat[x]+'\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+' (retrieved from http://hemlock.knams.wikimedia.org/~wizardrydragon/lookup_hostmask.php?ip='+ip_use+'&amp;lang='+wgContentLanguage+' ) '; newdiv.innerHTML += ''; iterate_data(newdiv, data_ipinfo); newdiv.innerHTML += ''; 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) { } //