Network Tools Supported
-
Host Scanner
-
Port Scanner
- Single
- Range
- Custom
Partly Work:
- Mdns Scanner
import 'package:network_tools/network_tools.dart';
String address = '192.168.1.12';
// or You can also get address using network_info_plus package
// final String? address = await (NetworkInfo().getWifiIP());
final String subnet = address.substring(0, address.lastIndexOf('.'));
final stream = HostScanner.discover(subnet, firstSubnet: 1, lastSubnet: 50,
progressCallback: (progress) {
print('Progress for host discovery : $progress');
});
stream.listen((host) {
//Same host can be emitted multiple times
//Use Set<ActiveHost> instead of List<ActiveHost>
print('Found device: ${host}');
}, onDone: () {
print('Scan completed');
}); // Don't forget to cancel the stream when not in use.
//1. Range
String target = '192.168.1.1';
PortScanner.discover(target, startPort: 1, endPort: 1024,
progressCallback: (progress) {
print('Progress for port discovery : $progress');
}).listen((event) {
if (event.isOpen) {
print('Found open port : $event');
}
}, onDone: () {
print('Scan completed');
});
//2. Single
bool isOpen = PortScanner.isOpen(target,80);
//3. Custom
PortScanner.customDiscover(target, portList : const [22, 80, 139]);
for (final ActiveHost activeHost in await MdnsScanner.searchMdnsDevices()) {
final MdnsInfo? mdnsInfo = activeHost.mdnsInfo;
print(
'Address: ${activeHost.address}, Port: ${mdnsInfo!.mdnsPort}, ServiceType: ${mdnsInfo.mdnsServiceType}, MdnsName: ${mdnsInfo.getOnlyTheStartOfMdnsName()}',
);
}
- Run host scan :
dart example/host_scan.dart
- Run port scan :
dart example/port_scan.dart
- Run mdns scan :
dart example/mdns_scan.dart
Add this code to your main.dart
file
Logger.root.level = Level.FINE; //set to finest for detailed log
Logger.root.onRecord.listen((record) {
print(
'${DateFormat.Hms().format(record.time)}: ${record.level.name}: ${record.loggerName}: ${record.message}');
});
Vernet is the open source app built on top of this library. You can check out the code and implementation for more detailed use case of this package.
-
Support this project by becoming stargazer of this project.
-
Buy me a coffee.
Bitcoin UPI -
Support me on Ko-Fi
Inspired from ping_discover_network