I do a lot of research on IP addresses, networks, etc, and rely heavily on free / open source websites. To save myself time I made a simple Firefox extension that allows me to highlight and right-click an IP and search either Shodan, Who Is Your VPN, IPinfo, Spur, anad Scamalytics either individually or all at once in separate tabs. You can easily install this your self by creating the below files in a directory on your computer then going to about:debugging
in Firefox and loading in the files as a temporary add-on.
manifest.json
{
"manifest_version": 2,
"name": "IP Lookup Extension",
"version": "1.0",
"description": "Right-click IP address lookup in multiple databases.",
"permissions": [
"contextMenus"
],
"background": {
"scripts": ["background.js"],
"persistent": false
},
"icons": {
"48": "icon.png"
}
}
background.js
function createUrl(template, ip) {
return template.replace('$IP', encodeURIComponent(ip));
}
const services = [
{ id: "shodan", title: "Shodan", url: "https://www.shodan.io/host/$IP" },
{ id: "ipdb", title: "IPDB", url: "https://whoisyourvpn.com/ip/$IP" },
{ id: "ipinfo", title: "IPinfo", url: "https://ipinfo.io/$IP" },
{ id: "spur", title: "Spur", url: "https://spur.us/context/$IP" },
{ id: "scamalytics", title: "Scamalytics", url: "https://scamalytics.com/ip/$IP" },
{ id: "all", title: "All", url: null }
];
browser.contextMenus.create({
id: "search-ip",
title: "Search IP",
contexts: ["selection"]
});
services.forEach(service => {
browser.contextMenus.create({
id: service.id,
title: service.title,
contexts: ["selection"],
parentId: "search-ip"
});
});
browser.contextMenus.onClicked.addListener((info, tab) => {
if (info.menuItemId === "all") {
services.forEach(service => {
if (service.url) {
const url = createUrl(service.url, info.selectionText);
browser.tabs.create({ url });
}
});
} else {
const service = services.find(s => s.id === info.menuItemId);
if (service) {
const url = createUrl(service.url, info.selectionText);
browser.tabs.create({ url });
}
}
});
And here’s a cute little magnifying glass you can use for icon.png
!