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

Using Vue.js to get the user's IP Address

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

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

这是我的js代码的精简版:

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

Html调用它的是:

<button class="button" id="yourIP" @click="showYourIP">Show Your IP</button>

这是我网站的 link 以便更容易理解我要做什么:https://people.rit.edu/sns9181/igme330/Threat-Visualizer/

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

这个问题是关于 JS 和 "how get client's IP in JS",而不是关于 Vue ;)

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

{"ip":"257.1.1.1"}

看看这个

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

放入showYourIp方法