Jump to content

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) {  }
//