我想要一个ip来记录用户登录。
我试过nestjs-real-ip
和@Ip()
。
我试着通过手机和个人电脑浏览器登录,
但他们都展示了:::1
。我怎样才能得到客户的真实知识产权?
发布于 2022-08-26 04:22:25
:::1
是ipv6中的回送地址,等于ipv4中的127.0.0.1
。您可以看到该地址,因为您试图在本地访问本地主机。这就是你的浏览器向你展示它的方式。
如果您要通过IP访问服务器并尝试使用curl
进行测试,您可能会看到其他内容,例如:
curl localhost:3000/ip
::ffff:127.0.0.1
或
curl 174.38.167.56:3000/ip
::ffff:174.38.167.56
如果您想了解更多关于ffff
前缀的信息,here
顺便说一句-你不需要任何额外的图书馆。request.ip
会给你同样的答案。这里有一个片段:
import { Controller, Get, Req } from '@nestjs/common';
import { Request } from 'express';
@Controller('ip')
export class IpController {
@Get()
getIpAddressFromRequest(@Req() request: Request): string {
return request.ip;
}
}
https://stackoverflow.com/questions/73495506
复制相似问题