- `index.js` als Client-Komponente deklariert (`"use client"`) zur Vermeidung von SSR-Problemen. - `useEffect` optimiert, um unendliche API-Requests durch `isMounted`-Check zu verhindern. - `loadData()` angepasst, um API-Fehler korrekt abzufangen und erneute Ladeversuche zu vermeiden. - Doppelte Registrierung von `poiReadFromDbTriggerAtom` durch HMR verhindert. - Ungültige MySQL-Option `acquireTimeout` entfernt, um Verbindungsfehler zu beheben. Diese Änderungen verhindern unerwartete Reloads und verbessern die Stabilität der Anwendung.
21 lines
682 B
JavaScript
21 lines
682 B
JavaScript
// pages/api/get-talasIP.js
|
|
|
|
export default function handler(req, res) {
|
|
// Der x-forwarded-for Header könnte mehrere IP-Adressen enthalten, getrennt durch Kommas
|
|
let clientIp =
|
|
req.headers["x-forwarded-for"]?.split(",").map((ip) => ip.trim())[0] ||
|
|
req.socket.remoteAddress;
|
|
|
|
// Entfernen möglicher IPv6 "mapped" IPv4 Adressen
|
|
if (clientIp?.includes("::ffff:")) {
|
|
clientIp = clientIp.split("::ffff:")[1];
|
|
}
|
|
|
|
// Nur IPv4 Adressen weitergeben, IPv6 Adressen ausschließen
|
|
if (clientIp && clientIp.includes(":")) {
|
|
clientIp = ""; // Dies setzt die IP auf leer, wenn es sich um eine IPv6-Adresse handelt
|
|
}
|
|
|
|
res.status(200).json({ ip: clientIp });
|
|
}
|