A Flutter package that allows discovering network devices in local network
lan_scanner
Dart / Flutter package that allows discovering network devices in local network (LAN).
Note: This library is intended to be used on Class C networks.
This project is a rework of already existing ping_discover_network, however it is no longer maintained.
Getting Started
Add the package to your pubspec.yaml:
lan_scanner: ^2.0.0
Import the library:
import 'package:lan_scanner/lan_scanner.dart';
Create an instance of the class and call
quickScan()
or preciseScan()
on it:
final port = 80;
final subnet = "192.168.0";
final timeout = Duration(seconds: 5);
final scanner = LanScanner();
final stream = scanner.preciseScan(
subnet,
timeout: timeout,
progressCallback: (ProgressModel progress) {
print('${progress.percent * 100}% 192.168.0.${progress.currIP}');
},
);
stream.listen((DeviceModel device) {
if (device.exists) {
print("Found device on ${device.ip}:${device.port}");
}
});
If you don't know what is your subnet, you can use network_info_plus and then ipToSubnet()
function.
var wifiIP = await (NetworkInfo().getWifiIP())
var subnet = ipToSubnet(wifiIP);
Features and bugs
Please file feature requests and bugs at the issue tracker.