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

USB调试时,如何通过Expo获取笔记本电脑的LAN IP地址?

解决Expo USB调试时获取电脑LAN IP的问题

问题说明

你之前尝试的react-native-network-info和expo-network都是获取移动设备自身的网络IP,而非运行Expo服务器的笔记本LAN IP,所以无法得到目标地址。而使用--localhost启动时,Constants.linkingUri返回的是本地回环地址127.0.0.1,仅能在设备内部访问,无法连接到电脑上的服务器。

可行解决方案

方案1:切换到LAN模式启动(推荐)

直接改用--host lan参数启动Expo,它会自动绑定你的笔记本LAN IP,并自动处理USB调试的端口转发:

npx expo start --host lan --android

此时Constants.linkingUri会返回类似exp://192.168.x.x:8081的地址,你原来的代码就能正确提取出LAN IP:

const localhostIP = Constants.linkingUri.split(':')[1].replace('//', '');

方案2:手动指定LAN IP启动

如果需要保留--localhost参数,可以手动指定你的笔记本LAN IP启动:

npx expo start --localhost --lan --host 192.168.x.x --android

(将192.168.x.x替换为你实际的LAN IP,可通过电脑网络设置或命令行工具获取)

方案3:通过环境变量传递LAN IP

  1. 先获取笔记本的LAN IP:
    • Mac/Linux终端执行:ifconfig | grep "inet " | grep -v 127.0.0.1 | awk '{print $2}'
    • Windows PowerShell执行:(Get-NetIPAddress -AddressFamily IPv4 | Where-Object {$_.InterfaceAlias -notmatch "Loopback"} | Select-Object -First 1).IPAddress
  2. 安装expo-dotenv:
    npx expo install expo-dotenv
    
  3. 在项目根目录创建.env文件,写入:
    LAN_IP=你的LAN_IP地址
    
  4. 在app.json中添加配置:
    "expo": {
      "extra": {
        "lanIp": process.env.LAN_IP
      }
    }
    
  5. 在代码中直接获取:
    import Constants from 'expo-constants';
    const localhostIP = Constants.expoConfig.extra.lanIp;
    

内容的提问来源于stack exchange,提问作者Z0q

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 03:45:33