美文网首页
Dart获取本地IP与外网IP(真实IP)

Dart获取本地IP与外网IP(真实IP)

作者: Medicine_8d60 | 来源:发表于2019-04-23 16:09 被阅读0次

如果是内网地址,可以使用NetworkInterface;如果想获取公网ip,可行方法之一是通过http请求ip查询网站,然后解析请求结果得到

import 'dart:io';
import 'dart:convert';
//改获取内网的方法仅支持ios 
main(List<String> args) async {
  // 内网ip
  for (var interface in await NetworkInterface.list()) {
    for (var addr in interface.addresses) {
      print('${addr.address}');
    }
  }

  // 外网ip
  var ipRegexp = RegExp(
      r'((?:(?:25[0-5]|2[0-4]\d|(?:1\d{2}|[1-9]?\d))\.){3}(?:25[0-5]|2[0-4]\d|(?:1\d{2}|[1-9]?\d)))');
  var url = 'http://www.ip.cn/';
  var client = HttpClient();
  var request = await client.getUrl(Uri.parse(url));
  var reponse = await request.close();
  reponse.transform(utf8.decoder).forEach((line) {
    ipRegexp.allMatches(line).forEach((match) {
      print(match.group(0));
    });
  });

Flutter的NetworkInterface好像只支持ios,只能使用插件了获取内网ip:https://pub.flutter-io.cn/packages/get_ip 50

<nav class="post-controls clearfix"></nav>

相关文章

网友评论

      本文标题:Dart获取本地IP与外网IP(真实IP)

      本文链接:https://www.haomeiwen.com/subject/boavgqtx.html