This commit is contained in:
Sefinek committed 2025-01-18 04:42:41 +01:00
1 parent 4a51d910e4
commit 782f0a7751
5 files changed
+56 -38

No files matched your search

+3 -3
View File
@@ -6,7 +6,7 @@ const isLocalIP = require('./services/isLocalIP.js');
const { reportedIPs, loadReportedIPs, saveReportedIPs, isIPReportedRecently, markIPAsReported } = require('./services/cache.js');
const log = require('./utils/log.js');
const axios = require('./services/axios.js');
const getServerIP = require('./services/serverIp.js');
const serverAddress = require('./services/serverAddress.js');
const config = require('./config.js');
const { version } = require('./package.json');
const { UFW_FILE, ABUSEIPDB_API_KEY, SERVER_ID, GITHUB_REPO } = config.MAIN;
@@ -63,8 +63,8 @@ const processLogLine = async line => {
return;
}
if (srcIp === getServerIP()) {
log(0, 'Ignoring own IP');
if (serverAddress().includes(srcIp)) {
log(0, `Ignoring own IP address: ${srcIp}`);
return;
}
+10 -10
View File
@@ -1,12 +1,12 @@
{
"name": "ufw-abuseipdb-reporter",
"version": "0.1.0",
"version": "0.1.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "ufw-abuseipdb-reporter",
"version": "0.1.0",
"version": "0.1.1",
"license": "GPL-3.0",
"dependencies": {
"axios": "^1.7.9",
@@ -14,14 +14,14 @@
"ipaddr.js": "^2.2.0"
},
"devDependencies": {
"@eslint/js": "^9.17.0",
"@eslint/js": "^9.18.0",
"globals": "^15.14.0"
}
},
"node_modules/@eslint/js": {
"version": "9.17.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.17.0.tgz",
"integrity": "sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==",
"version": "9.18.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.18.0.tgz",
"integrity": "sha512-fK6L7rxcq6/z+AaQMtiFTkvbHkBLNlwyRxHpKawP0x3u9+NC6MQTnFW+AdpwC6gfHTW0051cokQgtTN2FqlxQA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -165,12 +165,12 @@
"license": "MIT"
},
"node_modules/readdirp": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz",
"integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==",
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz",
"integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==",
"license": "MIT",
"engines": {
"node": ">= 14.16.0"
"node": ">= 14.18.0"
},
"funding": {
"type": "individual",
+3 -3
View File
@@ -1,7 +1,7 @@
{
"name": "ufw-abuseipdb-reporter",
"version": "0.1.0",
"description": "",
"version": "0.1.1",
"description": "A tool (with a simple installer) that monitors UFW firewall logs in real time and reports IP addresses to the AbuseIPDB database.",
"keywords": [
"ufw",
"abuseipdb"
@@ -28,7 +28,7 @@
"ipaddr.js": "^2.2.0"
},
"devDependencies": {
"@eslint/js": "^9.17.0",
"@eslint/js": "^9.18.0",
"globals": "^15.14.0"
}
}
+40
View File
@@ -0,0 +1,40 @@
const os = require('node:os');
const axios = require('./axios.js');
const isLocalIP = require('./isLocalIP.js');
let ipAddressList = [];
const fetchIPv4Address = async () => {
try {
const { data } = await axios.get('https://api.sefinek.net/api/v2/ip');
if (data?.success && data?.message) ipAddressList.push(data.message);
} catch (err) {
console.warn('Error fetching IPv4 address:', err.message);
}
};
const fetchIPv6Address = () => {
const networkInterfaces = os.networkInterfaces();
for (const interfaces of Object.values(networkInterfaces)) {
for (const details of interfaces) {
const ip = details.address;
if (!details.internal && ip && !isLocalIP(ip)) ipAddressList.push(ip);
}
}
};
const fetchIPAddress = async () => {
ipAddressList = [];
await fetchIPv4Address();
fetchIPv6Address();
};
(async () => {
await fetchIPAddress();
setInterval(fetchIPAddress, 25 * 1000);
console.log(ipAddressList);
})();
module.exports = () => [...ipAddressList];
-22
View File
@@ -1,22 +0,0 @@
const axios = require('./axios.js');
let address = null;
const fetchIPAddress = async () => {
if (address) return;
try {
const { data } = await axios.get('https://api.sefinek.net/api/v2/ip');
if (data?.success && data?.message) {
address = data.message;
} else {
setTimeout(fetchIPAddress, 20 * 1000);
}
} catch {
setTimeout(fetchIPAddress, 25 * 1000);
}
};
(async () => fetchIPAddress())();
module.exports = () => address;