提问人:Jay0813 提问时间:9/27/2023 更新时间:10/27/2023 访问量:41
如何使用 SvelteKit 和 TypeScript 将用户的公共 IP 添加到 X-Forwarded-For 标头中?
How to add a user's public IP to the X-Forwarded-For header using SvelteKit and TypeScript?
问:
我正在使用 SvelteKit 和 TypeScript 开发一个 Web 应用程序。在登录过程中,我的目标是在标头中发送登录用户的公共 IP 信息。
event.locals.clientIP = event.getClientAddress();
event.getClientAddress()
只需返回本地 IP。
如何正确将登录用户的公网IP添加到X-Forwarded-For报头?
附加信息:
由于潜在的安全漏洞,我宁愿不使用外部 API 来获取公共 IP。有没有其他方法可以获取 IP?
答:
1赞
mellunar
10/27/2023
#1
可以在服务器端获取客户端 IP:
+page.server.ts:
/** @type {import('@sveltejs/kit').RequestHandler} */
export async function load(event) {
return { ip: event.getClientAddress() };
}
并在客户端访问它:
+page.svelte:
<script lang="ts">
import type { PageData } from './$types';
export let data: PageData;
</script>
{#if data?.ip}
<p>ip to test: {data.ip}</p>
{/if}
请注意,在 localhost 上运行时,你将获得本地 IP,但在部署到生产环境后,将返回用户 IP。
评论