我正在制作一个天气应用程序,我使用 IPIFY 获得客户端 IP,但这会丢失 SSR,或者我使用 SSR 并获得服务器 IP。有人告诉我,我可以使用标头x-forwarded-for
,然后使用这个值,使用 SSR 进行天气 API 调用。
问题是我只用了nextjs,这里没有后端,二是不知道怎么x-forwarded-for
在前端调用或者使用获取客户端IP。
这可能吗?
我该如何实现呢?
我正在使用 vercel 来部署应用程序。
我正在制作一个天气应用程序,我使用 IPIFY 获得客户端 IP,但这会丢失 SSR,或者我使用 SSR 并获得服务器 IP。有人告诉我,我可以使用标头x-forwarded-for
,然后使用这个值,使用 SSR 进行天气 API 调用。
问题是我只用了nextjs,这里没有后端,二是不知道怎么x-forwarded-for
在前端调用或者使用获取客户端IP。
这可能吗?
我该如何实现呢?
我正在使用 vercel 来部署应用程序。
干得好:
export async function getServerSideProps({ req }) {
const forwarded = req.headers["x-forwarded-for"]
const ip = forwarded ? forwarded.split(/, /)[0] : req.connection.remoteAddress
return {
props: {
ip,
},
}
}
我认为您可以通过getServerSideProps获得它们。
export async function getServerSideProps({ req }) {
console.log(req.headers) //see if you have those headers
return {
props: {
headers
},
}
}
function Page({ headers }) {
// Render data...
}