使用 Vue.js 获取用户的 IP 地址

son*_*dev 4 javascript ip-address vue.js

我的网站查找不同的 IP 地址以查看它们是否是已知威胁。我在其中放置了一个通过 Vue.js 链接的按钮,并在单击时将用户的 IP 地址推送到输入框。我在尝试获取用户的 IP 地址时遇到了很多麻烦。

此外,我不想要任何 jquery,因为每当我尝试使用它时都会抛出错误。

这是我的 js 代码的删节版:

let app = new Vue({
    el: '#app',
    data: {
    term: localStorage.getItem("searchTerm")
    },
    methods: {
     showYourIP()
    {
      this.term = //User's IP Address
    }
}});
Run Code Online (Sandbox Code Playgroud)

调用它的 HTML 是:

<button class="button" id="yourIP" @click="showYourIP">Show Your IP</button>
Run Code Online (Sandbox Code Playgroud)

这是我网站的链接,因此更容易理解我正在尝试做的事情:https : //people.rit.edu/sns9181/igme330/Threat-Visualizer/

如果更容易,您可以通过右键单击并检查页面来查看我的整个代码。

小智 16

这个问题是关于 JS 和“如何在 JS 中获取客户端的 IP”,而不是关于 Vue ;)

但关键是:您应该从某些 api 获取 ip,例如https://www.ipify.org/ 当您向https://api.ipify.org?format=json发送请求时,您会得到这样的 JSON

{"ip":"257.1.1.1"}
Run Code Online (Sandbox Code Playgroud)

看这个

fetch('https://api.ipify.org?format=json')
.then(x => x.json())
.then(({ ip }) => {
    this.term = ip;
});
Run Code Online (Sandbox Code Playgroud)

将其放入 showYourIp 方法中