Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在Flutter中获得公共IP?_Android_Flutter_Dart - Fatal编程技术网

Android 如何在Flutter中获得公共IP?

Android 如何在Flutter中获得公共IP?,android,flutter,dart,Android,Flutter,Dart,在我的情况下,我需要公共IP地址。但是,在研究了几乎所有与本地IP相关的文档之后,比如:,我想要202.xxx而不是192.168.xxx。有人能给你一些建议吗?你有没有试过通过sim网络而不是模拟器或wifi来运行它它会工作。您是否尝试过通过sim网络而不是模拟器或wifi运行它它会工作。据我所知,无法从设备内部获取设备的公共IP。这是因为绝大多数情况下,设备不知道自己的公共IP。公共IP由ISP分配给设备,并且您的设备通常通过任意数量的调制解调器、路由器、交换机等与ISP分离 您需要查询一些

在我的情况下,我需要公共IP地址。但是,在研究了几乎所有与本地IP相关的文档之后,比如:,我想要202.xxx而不是192.168.xxx。有人能给你一些建议吗?

你有没有试过通过sim网络而不是模拟器或wifi来运行它它会工作。

您是否尝试过通过sim网络而不是模拟器或wifi运行它它会工作。

据我所知,无法从设备内部获取设备的公共IP。这是因为绝大多数情况下,设备不知道自己的公共IP。公共IP由ISP分配给设备,并且您的设备通常通过任意数量的调制解调器、路由器、交换机等与ISP分离

您需要查询一些外部资源或API(例如),然后这些资源或API将告诉您公共IP是什么。您可以通过一个简单的HTTP请求来实现这一点

导入“包:http/http.dart”; 未来的getPublicIP()异步{ 试一试{ 常量url=https://api.ipify.org'; var response=wait http.get(url); 如果(response.statusCode==200){ //响应主体是纯文本的IP,所以 //按原样归还。 返回响应.body; }否则{ //请求失败,代码为非200 //ipify.org API有很多有保证的正常运行时间 //承诺,所以这不应该真的发生。 打印(响应状态码); 打印(响应.正文); 返回null; } }捕获(e){ //由于错误,请求失败,很可能是因为 //手机未连接到internet。 印刷品(e); 返回null; } }
编辑:现在有一个从IPify服务获取公共IP信息的方法。您可以使用此软件包代替上述手动解决方案:

import'包:dart_-ipify/dart_-ipify.dart';
void main()异步{
final ipv4=等待Ipify.ipv4();
打印(ipv4);/98.207.254.136
final ipv6=wait Ipify.ipv64();
打印(ipv6);//98.207.254.136或2a00:1450:400f:80d::200e
final ipv4json=wait Ipify.ipv64(格式:format.JSON);
打印(ipv4json);//{“ip”:“98.207.254.136”或{“ip”:“2a00:1450:400f:80d::200e”}
//响应类型可以是文本、json或jsonp
}

据我所知,无法从设备内部获取设备的公共IP。这是因为绝大多数情况下,设备不知道自己的公共IP。公共IP由ISP分配给设备,并且您的设备通常通过任意数量的调制解调器、路由器、交换机等与ISP分离

您需要查询一些外部资源或API(例如),然后这些资源或API将告诉您公共IP是什么。您可以通过一个简单的HTTP请求来实现这一点

导入“包:http/http.dart”; 未来的getPublicIP()异步{ 试一试{ 常量url=https://api.ipify.org'; var response=wait http.get(url); 如果(response.statusCode==200){ //响应主体是纯文本的IP,所以 //按原样归还。 返回响应.body; }否则{ //请求失败,代码为非200 //ipify.org API有很多有保证的正常运行时间 //承诺,所以这不应该真的发生。 打印(响应状态码); 打印(响应.正文); 返回null; } }捕获(e){ //由于错误,请求失败,很可能是因为 //手机未连接到internet。 印刷品(e); 返回null; } }
编辑:现在有一个从IPify服务获取公共IP信息的方法。您可以使用此软件包代替上述手动解决方案:

import'包:dart_-ipify/dart_-ipify.dart';
void main()异步{
final ipv4=等待Ipify.ipv4();
打印(ipv4);/98.207.254.136
final ipv6=wait Ipify.ipv64();
打印(ipv6);//98.207.254.136或2a00:1450:400f:80d::200e
final ipv4json=wait Ipify.ipv64(格式:format.JSON);
打印(ipv4json);//{“ip”:“98.207.254.136”或{“ip”:“2a00:1450:400f:80d::200e”}
//响应类型可以是文本、json或jsonp
}

我最近遇到了这个话题。 在调查了这个问题之后,我找到了一个使用外部API的解决方案。 我正在使用,它有一个慷慨的免费层

  • 请求免费访问密钥
  • 打下面的电话
  • 您可以从响应中提取ip参数

我最近遇到了这个话题。 在调查了这个问题之后,我找到了一个使用外部API的解决方案。 我正在使用,它有一个慷慨的免费层

  • 请求免费访问密钥
  • 打下面的电话
  • 您可以从响应中提取ip参数

您是否尝试过通过sim网络而不是模拟器或wifi运行。还没有,让我检查您是否尝试过通过sim网络而不是模拟器或wifi运行。还没有,让我检查请不要问问题作为答案。如果你需要对OP问题的某些部分进行澄清,请以评论的形式进行。请不要以提问作为回答。如果您需要对OP问题的某些部分进行澄清,请以评论的形式进行。