0.1.1
This commit is contained in:
1 parent
4a51d910e4
commit
782f0a7751
5 files changed
+56
-38
No files matched your search
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Generated
+10
-10
@@ -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
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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];
|
||||
@@ -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;
|
||||
Reference in new issue
Block a user