2단계 검색 처리 흐름
Flutter 앱은 먼저 활성 네트워크, 폰 주소, 게이트웨이와 후보 CIDR을 확인합니다. 탐색 단계가 응답 호스트를 찾고, 장비 분석 단계는 그 호스트에만 더 깊은 근거를 모읍니다. 각 장비 행이 준비되는 대로 UI에 보냅니다.
| 신속·균형 프로필 | 호스트 16개, 장비 분석 8개 동시 작업 |
|---|---|
| 탐침 제한 시간 | 신속 1.2초, 균형·정확 1.8초 |
| 정확 프로필 | HTTP 본문 분석 추가 |
| 취소 | 공유 취소 토큰으로 새 작업과 진행 상태 공개 중단 |
여러 탐색 출처
TCP 응답 확인과 UDP·운영체제 도달성 확인을 병렬로 실행해 한 프로토콜에 침묵하는 실제 장비를 빠뜨리지 않습니다. IP를 기준으로 근거를 합치고 특정 프로토콜에만 응답한 장비도 요청 CIDR 안이라면 결과에 넣습니다.
- 선택 TCP 포트는 웹·SSH·RTSP·Windows·모바일·프린터·산업용 서비스를 포함합니다.
- SSDP/UPnP, 미디어, 모바일 장비, 프린터와 LS PLC 검색을 병렬 실행합니다.
- 선택 TCP 포트가 모두 닫혀도 운영체제 도달성 확인에 응답한 호스트를 유지할 수 있습니다.
- 폰 자신의 IP는 로컬 끝점이 보이도록 명시적으로 추가합니다.
이름표보다 근거 먼저
분류는 포트 하나가 아니라 탐침 요약을 받습니다. 열린 포트, 배너, HTTP 서명, 호스트 이름, MAC OUI, 게이트웨이 식별 정보, SSDP·mDNS 메타데이터, 프린터·미디어 기록과 제조사 전용 산업 프로토콜 응답을 조합합니다.
확정과 후보는 서로 다른 제품 상태입니다. 근거 규약이 충분히 강할 때만 장비 종류를 확정하며, 나머지는 추정을 사실처럼 보이지 않고 불확실성을 남깁니다.
각 행은 종류·신뢰도와 함께 지역화 가능한 근거 문구를 가집니다. 잘못된 분류 원인을 확인할 수 있고 같은 입력 사실을 대상으로 새 규칙을 시험할 수 있습니다.
자원과 개인정보 경계
탐색과 장비 분석 단계 모두 동시성을 제한합니다. 신속 프로필도 모든 호스트와 모든 포트를 한 번에 곱해 열지 않습니다. 프린터와 본문 분석 탐침에는 더 작은 별도 한계가 있습니다.
- 검색과 분류는 폰에서 처리합니다.
- 세션은 로컬에 저장하며 사용자가 명시적으로 선택할 때만 내보냅니다.
- 장비 목록을 droidactor 서버로 보내지 않습니다.
- 결과는 한 시점·한 네트워크의 관찰이며 영구 자산 목록이 아닙니다.
검증과 확인된 제약
CIDR 열거, 제한된 작업 풀, 취소, 프로토콜 파서, OUI 조회, 장비 모델, 분류 규칙, 내보내기, 세션 영속화와 UI 진행 상태를 시험합니다.
- 클라이언트 격리·방화벽·절전·속도 제한 때문에 장비가 보이지 않을 수 있습니다.
- 열린 포트는 서비스 근거이지 소유권이나 접근 권한의 증명이 아닙니다.
- 펌웨어와 네트워크 역할이 바뀌면 제조사·장비 이름표가 오래될 수 있습니다.
- 사용자가 소유하거나 검사 권한을 받은 네트워크만 검색해야 합니다.