Go로 작성한 LAN 디스커버리 TUI 툴을 만들었음. 이름은 Whosthere이며, 관리자 권한 없이 로컬 네트워크의 장치를 탐색할 수 있게 설계했음
mDNS, SSDP, ARP 캐시, OUI 조회 등을 조합해 장치를 찾고, tview 기반의 빠른 키보드 중심 UI, 내장 포트 스캐너, HTTP API 데몬 모드, YAML 설정 파일을 지원함
Go와 네트워킹을 동시에 배우기 위해 만든 프로젝트이며, lazygit, k9s, dive 같은 TUI 앱에서 영감을 받았음
Homebrew나 go install로 설치 가능하며 Linux와 macOS를 지원함
아주 멋진 툴임 :-) IP의 역방향 조회(reverse lookup) 기능이 있으면 좋겠음. 내 LAN에서는 이름이 없는 장치는 대부분 침입자일 가능성이 높음
이런 걸 찾고 있었음! 다른 스캐너와 비교해봤는데, Advanced IP Scanner가 여전히 호스트네임 탐지에서는 최고였음.
내 네트워크 결과는 다음과 같음:
표준에는 없지만, 많은 인기 Go TUI들이 Bubble Tea를 기반으로 만들어짐. 이 프로젝트는 tview를 사용함
이름을 “Whose LAN is it anyway? ”로 했으면 더 재치 있었을 듯함
훌륭한 기술력임. 이제 진짜 엔지니어의 길로 들어선 것 같음
네트워크 트래픽을 직접 볼 수는 없지만, 이런 툴 없이 문제를 진단하려는 사람들을 자주 봄
실제로는 nmap, wireshark, LLDP, CDP 같은 도구가 필수이며, 대규모 네트워크에는 Netdisco를 추천함
요즘 “모던 TUI”들이 결국 Turbo Vision, Clipper, curses 시절의 복고풍을 재현하고 있는 게 흥미로움
혹시 Tailscale에서 테스트해봤는지 궁금함. 매우 유용할 수 있겠지만, Tailscale은 아직 mDNS를 지원하지 않음 관련 이슈 링크
Hacker News 의견들
Go로 작성한 LAN 디스커버리 TUI 툴을 만들었음. 이름은 Whosthere이며, 관리자 권한 없이 로컬 네트워크의 장치를 탐색할 수 있게 설계했음
mDNS, SSDP, ARP 캐시, OUI 조회 등을 조합해 장치를 찾고, tview 기반의 빠른 키보드 중심 UI, 내장 포트 스캐너, HTTP API 데몬 모드, YAML 설정 파일을 지원함
Go와 네트워킹을 동시에 배우기 위해 만든 프로젝트이며, lazygit, k9s, dive 같은 TUI 앱에서 영감을 받았음
Homebrew나
go install로 설치 가능하며 Linux와 macOS를 지원함내 네트워크 결과는 다음과 같음:
“nmap을 기억하지 못하는 자는 그것을 서툴게 다시 만들 운명이다”라는 유명한 말이 있음
루트 권한 없이
/24스캔을 10초 안에 끝내는 명령 예시를 공유함nmap 공식 문서 참고
5년 전 나도 같은 아이디어로 비슷한 CLI 툴을 만들었는데, 이름도 똑같이 “whosthere”의 폴란드어 버전 ktotu였음
ktotu 프로젝트 링크
이번 버전은 훨씬 완성도 높고 Go를 선택한 것도 좋은 판단임. 혹시 AI로 아이디어를 생성한 건지 궁금함
전반적으로 잘 만든 툴임.
-i옵션으로 스캔할 인터페이스 지정이 가능하면 좋겠음.내 노트북에서는 첫 스캔만 제대로 되고 이후에는 ARP 요청이 보이지 않았음
인터페이스 설정은 YAML 파일에서 가능하며, 향후 명령줄 플래그로도 조정할 수 있게 할 예정임
이름을 “whogoesthere”로 했으면 더 재밌었을 것 같음
Go 표준 라이브러리에 TUI 관련 기능이 특별히 잘 되어 있는지 궁금함. 요즘 새 TUI들이 전부 Go로 작성되는 것 같음
이름을 “Whose LAN is it anyway? ”로 했으면 더 재치 있었을 듯함
훌륭한 기술력임. 이제 진짜 엔지니어의 길로 들어선 것 같음
네트워크 트래픽을 직접 볼 수는 없지만, 이런 툴 없이 문제를 진단하려는 사람들을 자주 봄
실제로는 nmap, wireshark, LLDP, CDP 같은 도구가 필수이며, 대규모 네트워크에는 Netdisco를 추천함
요즘 “모던 TUI”들이 결국 Turbo Vision, Clipper, curses 시절의 복고풍을 재현하고 있는 게 흥미로움
혹시 Tailscale에서 테스트해봤는지 궁금함. 매우 유용할 수 있겠지만, Tailscale은 아직 mDNS를 지원하지 않음
관련 이슈 링크