React native 如何找到HTTP请求中使用的IP地址?

React native 如何找到HTTP请求中使用的IP地址?,react-native,networking,fetch,ip-address,React Native,Networking,Fetch,Ip Address,我想通过React Native中的fetch()方法发出一个http请求,我需要发送请求的机器的IP地址。我可以访问这台机器,并在上面搜索“我的IP是什么”。上面说我的公共IP是162.250.198.98,但当我在附近的另一台电脑上搜索时,它给出了相同的地址。这是在这样的获取请求中使用的正确IP吗?如果没有,我如何找到合适的计算机使用?如果您有多台计算机通过启用NAT的路由器连接到internet,它们将共享相同的公共IP地址。在路由器配置中,您需要将特定端口转发到要连接的机器,例如,要在端

我想通过React Native中的
fetch()
方法发出一个http请求,我需要发送请求的机器的IP地址。我可以访问这台机器,并在上面搜索“我的IP是什么”。上面说我的公共IP是162.250.198.98,但当我在附近的另一台电脑上搜索时,它给出了相同的地址。这是在这样的获取请求中使用的正确IP吗?如果没有,我如何找到合适的计算机使用?

如果您有多台计算机通过启用NAT的路由器连接到internet,它们将共享相同的公共IP地址。在路由器配置中,您需要将特定端口转发到要连接的机器,例如,要在端口5000上发送请求,请向路由器添加一条规则,将端口5000转发到所需的机器,然后将请求发送到162.250.198.98:5000,您的应用程序才能工作,您需要一个具有公共ip地址的“服务器”。稍后,您将为该服务器/ip地址分配域名,例如api.domain.com

由于您没有服务器,并且您正在使用计算机测试您的开发,因此您可以通过以下两种方式执行此操作:

  • 使用您的计算机IP地址通常为192.168.x.x、10.x.x.x或172.16.x.x这将允许您测试您的手机是否无线连接到同一网络
  • 由于您在NAT后面,您可以进行端口转发,将流量发送到X端口到NAT后面所需的主机(ip/端口)。通常,我们创建在端口80或443上运行的API,在路由器中做一个端口转发,以将流量从该端口传递到计算机ip/端口

  • 当你说“向路由器添加一条规则,将端口5000转发到你想要的机器”时,我正在Android上运行我的应用程序,有一个命令
    adb reverse
    ,将Android上的端口5000转发到该IP地址的端口5000。这就是你的意思吗?因此,即使两台计算机都有相同的IP,因为我正在运行API,我试图从一台计算机的端口5000点击,并将我的设备转发到该端口,这样可以吗?我不理解这个问题。为什么要使用自己的IP地址向自己发送请求?你为什么不使用服务器的地址?我的本地机器上有一个API,我正试图从连接到它的Android设备上点击它。哦,如果它们在同一个网络上,只需在你的本地机器上查找IP地址。你没有提到什么操作系统,所以我们不能告诉你怎么做。在Windows上,
    ipconfig
    。Linux和其他,
    ifconfig
    。而且,选择哪个IP取决于它从那里连接到的网络。我在Mac上。有趣的是,当我在谷歌上搜索“what's my IP”时,我得到的IP与在系统首选项中查找的IP不同。你知道为什么会这样吗?我应该使用哪一个?你应该使用与你的Android手机在同一网络上的任何网络接口的IP地址。是的,如果你在线查找你的IP地址,你会得到最近的NAT路由器的IP地址,而不是你的计算机。在IPv6推出完成之前,我们只能使用NAT,在NAT中,整个家庭(甚至岛屿)共享相同的IP地址。