Flutter / Dart:列出本地网络上的设备

时间:2018-09-16 15:37:58

标签: networking dart flutter

我想通过Flutter应用程序连接到本地网络上的计算机。有什么办法可以将所有计算机连接到本地网络?喜欢ping广播地址吗?

3 个答案:

答案 0 :(得分:2)

现在该库仅适用于Android,但是...

https://pub.dartlang.org/packages/mdns

  1. 为正在运行的任何服务设置mdns。
  2. 这样发现服务

    startMdnsDiscovery(String serviceType){
    
        Mdns mdns = new Mdns(discoveryCallbacks: discoveryCallbacks);
    
        mdns.startDiscovery(serviceType);
    
    }
    

完整示例:here

还有what is MDNS

答案 1 :(得分:0)

但上述软件包仍未维护,并且无法使用当前的dart版本

答案 2 :(得分:0)

要发现您的本地网络并列出连接的计算机,打印机和其他网络设备,请使用ping_discover_network软件包。

获取本地IP并发现网络设备:

import 'package:wifi/wifi.dart';
import 'package:ping_discover_network/ping_discover_network.dart';

final String ip = await Wifi.ip;
final String subnet = ip.substring(0, ip.lastIndexOf('.'));
final int port = 80;

final stream = NetworkAnalyzer.discover(subnet, port);
stream.listen((NetworkAddress addr) {
  if (addr.exists) {
    print('Found device: ${addr.ip}');
  }
});