0.1.1
This commit is contained in:
1 parent
4a51d910e4
commit
782f0a7751
5 files changed
+56
-38
No files matched your search
@@ -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