パッケージ、リポジトリ、アプリカテゴリを検索

GitHub リポジトリivirtex/lan_scanner

lan_scanner

マルチスレッドICMPピングを介してローカルネットワーク(LAN)内のネットワークデバイスの検出を可能にするDart / Flutterパッケージ。

lan_scanner のプロジェクト画像
スター
27
フォーク
4
最終プッシュ(UTC)
2023/08/05
プロジェクト状態
アーカイブ済み

元の README

以下は英語原文のスナップショットです。最新版は GitHub をご覧ください。

lan_scanner

pub.dev badge GitHub build status

Dart / Flutter package that allows discovering network devices in local network (LAN) via multi-threaded ICMP pings.

Note: This library is intended to be used on Class C networks.

pub.dev page | API reference

Getting Started

Add the package to your pubspec.yaml:

lan_scanner: ^4.0.0

Import the library:

import 'package:lan_scanner/lan_scanner.dart';

Create an instance of the class and call quickIcmpScanAsync() on it:

final scanner = LanScanner();

final List<Host> hosts = scanner.quickIcmpScanAsync('192.168.0');

There is also stream-based icmpScan() method available, which provides progress callback, but is much slower and resource hungry than other methods.

If you don't know what subnet to provide, you can use network_info_plus to get your local IP and then ipToCSubnet() function, which will conviently strip the last octet of the IP address:

// 192.168.0.1
var wifiIP = await NetworkInfo().getWifiIP()

// 192.168.0
var subnet = ipToCSubnet(wifiIP);

iOS compatibility

Due to the issue with Flutter platform channels (#119207), iOS platform is currently supported only when using the quickIcmpScanSync() method and requires additional steps:

Add dart_ping_ios to your pubspec.yaml:

dart_ping_ios: ^4.0.0

Call register() method before running your app:

void main() {
  DartPingIOS.register();

  runApp(const App());
}

Configuration

Warning:
In order to use this package, you may need to do additional configuration on some platforms.

Android:
Add the android.permission.INTERNET to your AndroidManifest.xml file:

<uses-permission android:name="android.permission.INTERNET" />

MacOS:
Add following key to DebugProfile.entitlements and Release.entitlements files:

<key>com.apple.security.network.client</key>
<true/>

Features, bugs and contributions

Feel free to contribute to this project.

Please file feature requests and bugs at the issue tracker.
If you fixed a bug or implemented a feature by yourself, feel free to send a pull request.

Sponsoring

I am working on my packages in my free time.

If this package is helping you, please consider buying me a coffee, so I can keep updating and maintaining this package.

Hubert Jóźwiak GitHub avatar
GitHub 作者

Hubert Jóźwiak ↗

@intelPoland
言語DartC++CMakeRubySwiftCKotlinObjective-C

カテゴリー

使用している依存関係

依存関係一覧 4 件

プロジェクトに合うリポジトリを選ぶには?

用途で絞り込み、開発状況を比較し、採用前に元のリポジトリで要件を確認しましょう。

  1. 名前・作者・説明で検索し、技術トピックで絞り込みます。
  2. スター、フォーク、最近のプッシュを比較します。スターは関心の目安であり、品質の保証ではありません。
  3. 利用前に GitHub で README、ライセンス、Issues を確認します。

情報源と管理

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗