Nuxt:利用public-ip这个npm包来获取公网IP

目录

一、安装public-ip包

html 复制代码
npm install public-ip

1.在Vue组件中使用

你可以在Nuxt.js的任意组件或者插件中使用public-ip来获取公网IP。下面是在一个Vue组件中如何使用它的例子:

html 复制代码
<template>
  <div>
    <h1>你的公网IP是:{{ ip }}</h1>
  </div>
</template>
 
<script>
import {publicIp, publicIpv4, publicIpv6} from 'public-ip';
 
export default {
  data() {
    return {
      ip: null,
    };
  },
  async mounted() {
    console.log(await publicIp());   // IPv4或IPv6
    console.log(await publicIpv6()); // IPv6
    console.log(await publicIpv4()); // IPv4
    try {
      this.ip = await publicIpv4(); // 获取IPv4公网IP
      // 或者使用 publicIpv6() 获取IPv6公网IP
    } catch (err) {
      console.error('无法获取公网IP', err);
    }
  },
};
</script>

2.在Nuxt.js插件中使用public-ip

你也可以在Nuxt.js的插件中全局使用public-ip,这样可以在任何组件中直接访问公网IP。

(1)在plugins目录下创建一个新的文件,例如public-ip.js:

javascript 复制代码
import Vue from 'vue';
import {publicIp, publicIpv4, publicIpv6} from 'public-ip';
 
export default async ({ app }, inject) => {
  try {
    const ip = await publicIpv4(); // 获取IPv4公网IP
    // 或者使用 publicIpv6() 获取IPv6公网IP
    inject('publicIp', ip); // 注入公网IP到Vue实例中,可以通过this.$publicIp访问
  } catch (err) {
    console.error('无法获取公网IP', err);
  }
};

(2)在nuxt.config.js文件中注册这个插件:

javascript 复制代码
export default {
  plugins: [
    '~/plugins/public-ip' // 确保路径正确,根据你的项目结构调整路径
  ],
}

(3)在组件中使用注入的公网IP:

html 复制代码
<template>
  <div>
    <h1>你的公网IP是:{{ $publicIp }}</h1>
  </div>
</template>
相关推荐
可乐加.糖12 小时前
一篇关于Netty相关的梳理总结
java·后端·网络协议·netty·信息与通信
吴盐煮_12 小时前
使用UDP建立连接,会存在什么问题?
网络·网络协议·udp
忆源15 小时前
SOME/IP-SD -- 协议英文原文讲解9(ERROR处理)
网络·网络协议·tcp/ip
低头不见21 小时前
tcp的粘包拆包问题,如何解决?
网络·网络协议·tcp/ip
Aa美少女战士1 天前
单域名 vs 通配符:如何选择最适合你的 SSL 证书?
网络协议·https·ssl
咕噜签名1 天前
如何申请p12证书
网络协议·https·ssl
2a3b4c1 天前
SSL/TLS
网络协议·https·ssl
沫夕残雪1 天前
HTTP,请求响应报头,以及抓包工具的讨论
网络·vscode·网络协议·http
the_nov1 天前
14.网络套接字TCP
linux·c++·网络协议