You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需依赖expo-network包,在Expo中获取公网IP的可行方案

Expo环境下不依赖expo-network获取公网IP的替代方案

我目前使用expo-network包获取公网IP,希望清理package.json中的冗余依赖,寻求不依赖该包的替代方案。此前已尝试过两种方式:

  • expo-network(当前想替换掉的方案)
  • react-native-network-info(在Expo环境中无法正常工作)

以下是可行的替代方案:

1. 调用第三方IP查询API

直接利用Expo自带的fetch能力请求公开的IP查询接口,无需安装任何额外依赖包,代码示例:

async function getPublicIP() {
  try {
    const res = await fetch('https://api.ipify.org?format=json');
    const data = await res.json();
    return data.ip;
  } catch (err) {
    console.error('获取公网IP出错:', err);
    return null;
  }
}

类似的可用接口还有https://icanhazip.com(返回纯文本格式的IP地址),选择稳定的接口即可。

2. 进阶:DNS解析公网域名(可选)

若不想依赖第三方API,可通过解析知名公网域名获取IP,但需要处理DNS解析逻辑。如果使用Expo的话,可借助expo-dns包实现,但如果追求彻底零额外依赖,优先选择第一种方案更简便。

总结:第三方IP查询API方案最实用,无需添加任何依赖,代码实现简单且稳定性高,完全能满足清理package.json冗余包的需求。

内容的提问来源于stack exchange,提问作者Ruo Mei Xi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 18:12:04