User:GeneralNotability/moremenu-proxy.js

$(function () {

mw.hook('moremenu.ready').add(function (config) {

const isip = mw.util.isIPAddress(config.targetUser.name, false);

// Things that only work on single IP addresses

if (isip) {

MoreMenu.addSubmenuLink('user', 'ip-lookup', 'Bullseye', 'https://bullseye.toolforge.org/ip/' + config.targetUser.encodedName);

MoreMenu.addSubmenuLink('user', 'ip-lookup', 'Spur', 'https://spur.us/context/' + config.targetUser.encodedName);

MoreMenu.addSubmenuLink('user', 'ip-lookup', 'Shodan', 'https://www.shodan.io/search?query=' + config.targetUser.encodedName);

if (mw.util.isIPv4Address(config.targetUser.name, false)) {

MoreMenu.addSubmenuLink('user', 'ip-lookup', 'Censys', 'https://censys.io/ipv4/' + config.targetUser.encodedName);

}

}

if (isip || config.targetUser.ipRange) {

MoreMenu.addSubmenuLink('user', 'ip-lookup', 'Stalktoy', 'https://tools.wmflabs.org/meta/stalktoy/' + config.targetUser.encodedName);

}

});

});