Flutter 应用程序在发出 get 请求时返回不同的公共 IP https://api.ipify.org

问题描述 投票:0回答:1

步骤:

  • 在 Android chrome 浏览器上加载 https://api.ipify.org
  • 这将返回公共 IP 地址 152.58.XX.XX
  • 现在使用 dart.io 中的 HttpClient 或使用 http 包在 Flutter 应用程序中加载相同的 URL。
  • 这将返回公共 IP 地址 152.58.YY.YY
  • 难道不应该返回相同的公共IP吗? 注意:这只发生在 Jio Network 上。

我们期望 flutter 应用程序和浏览器上有相同的 IP。

一些测试:

  • 在 Airtel 移动网络上,两者都返回相同的公共 IP 地址。
  • 在 Jio 移动网络上,两者都返回不同的公共 IP 地址。
  • 我使用 okHttp 构建原生 Android 应用程序 [kotlin] 并执行相同的流程。这在 Airtel 和 Jio 上都按预期工作
  • 我构建了一个 flutter 包来包装 kotlin okHttp 实现。这在 Airtel 和 Jio 上都按预期工作。

为什么只有在使用 flutter http 客户端和 jio 时才会看到不同的 IP。

重现问题的示例代码: https://github.com/subinsv/flutter_ip_issue

JIO 移动网络结果:

顶部是 flutter 应用程序,底部是浏览器 ip_issue

flutter dart
1个回答
0
投票

该问题是由 Dart 如何处理 Ipv4 和 Ipv6 连接网络连接引起的。 https://github.com/dart-lang/sdk/issues/55405#issuecomment-2068876528

© www.soinside.com 2019 - 2024. All rights reserved.