network_tools 패키지는 네트워크 탐색 및 진단을 지원하기 위해 설계된 Flutter 유틸리티 라이브러리입니다. 개발자가 하위 네트워크를 스캔하고 열린 포트를 감지하며 로컬 네트워크의 장치를 식별할 수 있도록 도와줍니다. 크로스플랫폼 사용을 위해 제작되었으며 Android, iOS, macOS, Windows, Linux를 모두 지원하여 저수준 네트워크 상호작용이 필요한 애플리케이션에 이상적입니다. 플랫폼 채널을 통해 네이티브 플랫폼 기능을 활용함으로써 다양한 환경에서 신뢰할 수 있는 성능을 보장합니다. 네트워크 모니터링, IoT 장치 탐지, 문제 해결 도구 등에 특히 유용합니다. 가벼운 설계와 간단한 API 덕분에 네트워킹 기능에 집중하는 개발자에게 통합이 간편합니다.
사용 사례
로컬 네트워크 스캔
서브넷에서 장치 탐지
진단을 위한 포트 스캔
사물인터넷 장치 탐지
네트워크 문제 해결
주요 기능
크로스 플랫폼 지원
서브넷 스캔
열린 포트 탐지
장치 열거
플랫폼 채널 통합
적합한 대상
네트워크 진단 앱
사물인터넷 관리 도구
시스템 모니터링 유틸리티
네트워크 분석을 위한 개발 도구
교육 네트워킹 프로젝트
고려 사항
적절한 시스템 권한이 필요합니다
일부 플랫폼에서는 루트/관리자 액세스가 필요할 수 있습니다
성능은 네트워크 크기에 따라 달라집니다
로컬 네트워크 범위에 제한됨
기반 운영 체제의 네트워크 기능에 따라 달라짐
원본 README
연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.
Cross Platform Network Tools
Network Tools Supported
Host Scanner
Search all devices on subnet
Get mac address of devices on Linux, macOS and Windows.
Search devices for a specific port open.
Port Scanner
Single Port scan
Range
Custom
Partly Work:
Mdns Scanner
Network Tools Flutter package
Please check network_tools_flutter package for extensive support to features on different platforms.
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
// It's necessary to pass correct path to be able to use this library.final appDocDirectory = awaitgetApplicationDocumentsDirectory();
awaitconfigureNetworkTools(appDocDirectory.path, enableDebugging: true);
runApp(constMyApp());
}
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());finalString 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.