如何在Vue.js中获取用户IP地址

6

我是Vue.js的新手。我需要在Vue.js中获取用户IP地址。

之前我的做法是在API中使用req.ip,但是我的API总是得到Vue.js服务器的IP地址。

因此,我认为Vue.js必须确定用户的IP地址。但是我还没有找到最好的方法在Vue.js中获取用户IP地址。有人能帮忙吗?


1
我不明白你在说什么。你是在使用 SSR 吗? - Sumurai8
我想在Vue.js中获取用户/客户端IP地址。如果我尝试通过API获取用户IP,我只会得到Web服务器IP而不是用户IP地址。 - Crocodile
7
可能是如何使用JavaScript获取客户端的IP地址?的重复问题。 - Sumurai8
如果我阅读Samurai8参考资料,似乎没有独立的技术可以获取访问我们网站(在这种情况下使用Vue.js)的用户IP。如果使用JavaScript本地/Jquery方式看起来并不简单。没有其他/更简单的方法吗? - Crocodile
应用程序不需要知道自己的IP地址。在常规的Ajax调用中,您获得的IP地址是远程IP地址(即您服务器的IP地址),因为它需要将数据发送到该地址。远程服务器只需要知道将数据发送回哪个IP地址(在这种情况下是客户端)。有一些复杂的JavaScript方法可以确定您自己的IP地址,但我认为它们既不优雅,也不稳定。它们是hack/解决方法,不应被使用。 - Sumurai8
2个回答

2

您需要向某个API发送请求以公开客户端的IP地址。例如,您可以使用纯JS(例如,在mounted()中)发出以下请求,然后将IP保存到数据中。

fetch('https://api.ipify.org?format=json')
  .then(response => response.json())
  .then(response => {
    this.clientIp = response.ip;
  });

有没有办法获取本地网络IP? - Fred
1
请查看这个主题的讨论:https://dev59.com/8GIj5IYBdhLWcg3wflMy - perlindstroem

0
我在这里做出一些假设,但如果您正在使用nodejs和express作为代理后面的服务器,则可以添加以下内容,以便req.ip为您提供客户端IP:
var app = express();
app.set('trust proxy', true);

那么你的API想法就可以实现。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接