Next.js Discord

Discord Forum

Trying to get users ip in an api route using middleware.js

Unanswered
Kuchi posted this in #help-forum
Open in Discord
Avatar
KuchiOP
Here's my api route

export default withIronSessionApiRoute(async (req, res) => {

  let ip = req.ip ?? req.headers["x-real-ip"];

  const forwardedFor = req.headers["x-forwarded-for"];
  if (!ip && forwardedFor) {
    ip = forwardedFor.split(",")[0] ?? "Unknown";
  } else if (req.socket.remoteAddress && req.socket.remoteAddress !== "::1") {
    //   // If x-forwarded-for header is not available, use the remoteAddress
    ip = req.socket.remoteAddress.includes(":")
      ? req.socket.remoteAddress.split(":").slice(-1)[0]
      : req.socket.remoteAddress;
  }

  if (!ip || ip === null) {
    // If IP address couldn't be determined, handle it accordingly

    res.status(500).json({ error: "Failed to determine IP address" });
    return;
  }


is that sufficient for grabbing user ip within an api route that gets called inside my middleware.js file?

0 Replies