Pakete, Repositories und App-Kategorien suchen

Paketdetailsv6.0.18

network_tools

Networking-Tools-Bibliothek, die Ihnen helfen kann, offene Ports, Geräte in einem Subnetz und vieles mehr zu entdecken.

AndroidiOSmacOSWindowsLinux
30-Tage-Downloads
10.400
Likes
57
Pub-Punkte
160

Paket installieren

flutter pub add network_tools

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Das network_tools-Paket ist eine Flutter-Utility-Bibliothek, die bei der Netzwerk-Erkennung und -Diagnose unterstützt. Es ermöglicht Entwicklern, Subnetze zu scannen, offene Ports zu erkennen und Geräte in einem lokalen Netzwerk zu identifizieren. Für den plattformübergreifenden Einsatz entwickelt, unterstützt es Android, iOS, macOS, Windows und Linux und ist daher ideal für Anwendungen, die tiefgehende Netzwerkinteraktion erfordern. Die Bibliothek nutzt native Plattformfunktionen über Plattformkanäle, um eine zuverlässige Leistung in verschiedenen Umgebungen sicherzustellen. Sie ist besonders nützlich für Netzwerküberwachung, IoT-Gerätedetektion und Fehlerbehebungstools. Ihr leichtgewichtiges Design und die einfache API machen die Integration für Entwickler, die sich auf Netzwerkfunktionen konzentrieren, einfach.

Anwendungsfälle

  • Lokale Netzwerkscans
  • Geräteentdeckung in der Subnetz
  • Portscanning zur Diagnose
  • IoT-Geräteerkennung
  • Netzwerk-Fehlersuche

Hauptmerkmale

  • Plattformübergreifende Unterstützung
  • Subnetzscanning
  • Erkennung offener Ports
  • Geräteaufzählung
  • Plattformkanalintegration

Geeignet für

  • Netzwerk-Diagnose-Apps
  • IoT-Management-Tools
  • Systemüberwachungswerkzeuge
  • DevTools für Netzwerkanalyse
  • Bildungsnetzwerkprojekte

Hinweise

  • Erforderliche Systemberechtigungen
  • Auf einigen Plattformen kann Root/Admin-Zugriff erforderlich sein
  • Die Leistung variiert je nach Netzwerkgröße
  • Beschränkt auf den lokalen Netzwerkumfang
  • Abhängig von den Netzwerkfähigkeiten des zugrundeliegenden Betriebssystems

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

Cross Platform Network Tools

pub package Dart Code Coverage codecov

Network Tools Supported

  1. Host Scanner

    1. Search all devices on subnet
    2. Get mac address of devices on Linux, macOS and Windows.
    3. Search devices for a specific port open.
  2. Port Scanner

    1. Single Port scan
    2. Range
    3. Custom

Partly Work:

  1. Mdns Scanner

Network Tools Flutter package

Please check network_tools_flutter package for extensive support to features on different platforms.

Import package in your app

import 'package:network_tools/network_tools.dart';

Configure network tools in main function

For dart native
Future<void> main() async {
  await configureNetworkTools('build', enableDebugging: true);
  runApp(const MyApp());
}
For flutter apps
Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  // It's necessary to pass correct path to be able to use this library.
  final appDocDirectory = await getApplicationDocumentsDirectory();
  await configureNetworkTools(appDocDirectory.path, enableDebugging: true);
  runApp(const MyApp());
}

Usage

Host Scanner
 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 = HostScannerService.instance.getAllPingableDevices(subnet, firstHostId: 1, lastHostId: 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.
Port Scanner
  //1. Range
  String target = '192.168.1.1';
  PortScannerService.instance.scanPortsForSingleDevice(target, startPort: 1, endPort: 1024,
      progressCallback: (progress) {
    print('Progress for port discovery : $progress');
  }).listen((ActiveHost event) {
    if (event.openPorts.isNotEmpty) {
      print('Found open ports : ${event.openPorts}');
    }
  }, onDone: () {
    print('Scan completed');
  });
  //2. Single
  bool isOpen = (await PortScanner.isOpen(target, 80)) == null;
  //3. Custom
  PortScanner.customDiscover(target, portList: const [22, 80, 139]);
Mdns Scanner
  for (final ActiveHost activeHost in await MdnsScannerService.instance.searchMdnsDevices()) {
    final MdnsInfo? mdnsInfo = await activeHost.mdnsInfo;
    print('''
    Address: ${activeHost.address}
    Port: ${mdnsInfo!.mdnsPort}
    ServiceType: ${mdnsInfo.mdnsServiceType}
    MdnsName: ${mdnsInfo.getOnlyTheStartOfMdnsName()}
    ''');
  }
Run examples
  1. Run host scan : dart example/host_scan.dart
  2. Run port scan : dart example/port_scan.dart
  3. Run mdns scan : dart example/mdns_scan.dart

Sample App

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 and Donate

  1. Support this project by becoming stargazer of this project.

  2. Buy me a coffee.

    Librepay
    Donate using Liberapay
  3. Support me on Ko-Fi

    ko-fi

Inspired from ping_discover_network

Kategorien

Abhängigkeiten

Abhängigkeiten 12 Einträge

Quell-Repository

Projekte, die dieses Paket verwenden