[{"data":1,"prerenderedAt":515},["ShallowReactive",2],{"project-46731432":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":35,"aspects":36,"strip":45,"post_text":47,"what":48,"said":82,"maker_in_thread":228,"shape":233,"grid":237,"attempts":477,"same_week":478,"maker_shows":44,"maker_hidden":507,"reader_version":508,"card":509},"46731432","Whosthere","A LAN discovery tool with a modern TUI, written in Go","title","Show HN: Whosthere: A LAN discovery tool with a modern TUI, written in Go","https:\u002F\u002Fgithub.com\u002Framonvermeulen\u002Fwhosthere","github.com","rvermeulen98",1769169293,2026,278,89,165,4366,4,"legend","infrastructure","network discovery tool","cli",[24,25,26,27,28],"lan discovery","mdns","arp scanner","network tui","go","debated",0.042,{"positive":32,"neutral":33,"mixed":18,"critical":34},12,18,13,47,{"execution":37,"idea":40,"performance":41,"design":43},{"positive":38,"critical":39},3,10,{"positive":38,"critical":38},{"positive":42,"critical":42},0,{"positive":44,"critical":42},1,[46,46,46,44,42,42,38,46,38,42,42,42,42,18,38,42,42,38,44,38,44,44,44,44,44,46,38,44,46,44,46,46,38,44,42,46,38,44,44,38],5,null,{"problem":49,"audience":47,"pricing":47,"motivation":56,"time_to_build":47,"stack":63,"openness":79,"stage":80,"team_size":81},{"value":50,"source":51,"evidence":52},"Explore devices on a local network without elevated privileges","maker",[53],{"id":54,"by":11,"text":55},"46731433","I've been working on a LAN discovery tool with a Terminal User Interface (TUI) written entirely in Go. It's called Whosthere, and it's designed to help you explore devices on…",{"value":57,"source":51,"evidence":58},"Mainly to learn Go and networking, and build TUIs",[59,60],{"id":54,"by":11,"text":55},{"id":61,"by":11,"text":62},"46739475","The goal has never been to create something that can replace nmap, the goal was to learn more about networking and about building TUIs in Go. Honestly I am quite overwhelmed by…",[64,68,75],{"value":65,"source":51,"evidence":66},"Go",[67],{"id":54,"by":11,"text":55},{"value":69,"source":51,"evidence":70},"tview",[71,72],{"id":54,"by":11,"text":55},{"id":73,"by":11,"text":74},"46734619","I started off using tview\u002Ftcell, and only later found out about bubbletea and the charmbracelet ecosystem. Then I didn't really find a solid reason to switch over to bubbletea.…",{"value":76,"source":51,"evidence":77},"tcell",[78],{"id":73,"by":11,"text":74},"open_source","launched","unknown",{"praise":83,"objections":115,"requests":155,"questions":187,"alternatives":205},[84,104],{"value":85,"source":86,"evidence":87},"Useful, polished tool with good execution","commenter",[88,92,96,100],{"id":89,"by":90,"text":91},"46733511","nickcw","Very nice tool :-) It would be great it it could show the reverse lookup of the IPs as on my LAN everything has a name and if it hasn't then it is probably an interloper!",{"id":93,"by":94,"text":95},"46734617","alphax314","Looks great!! I had the same idea a few days ago and am so glad you posted this now! I will be using it and will let you know of any feedback. So far works great on my network!",{"id":97,"by":98,"text":99},"46735371","sneak","Love it! I already have some ideas for additional improvements, might jump in and contribute a PR or two. Great work.",{"id":101,"by":102,"text":103},"46741249","fulafel","Have a look at the traffic on your network with tcpdump, you might be surprised what's going on even if you don't have IPv6 internet connectivity. But yeah, bigcorp managed…",{"value":105,"source":86,"evidence":106},"Faster than nmap for device discovery",[107,111],{"id":108,"by":109,"text":110},"46736516","mmh0000","There's a famous quote: ``` Those who cannot remember nmap are condemned to remake it poorly ``` Rootless nmap scan of a \u002F24 in under 10 seconds: ``` nmap -T5 -sn -PR --script…",{"id":112,"by":113,"text":114},"46738591","sally_glance","But you've got to admit that OPs tool does it quicker, except if you like to memorize flags or already have a script specifically for this. And it's much nicer on the eye than…",[116,131,142,149],{"value":117,"source":86,"evidence":118},"Requires X11 when building from source, breaking install",[119,123,127],{"id":120,"by":121,"text":122},"46732893","Daviey","It means it has a dependency on X11. ``` $ go install github.com\u002Framonvermeulen\u002Fwhosthere@latest # golang.design\u002Fx\u002Fclipboard clipboard_linux.c:14:10: fatal error: X11\u002FXlib.h: No…",{"id":124,"by":125,"text":126},"46733001","fellerts","That has nothing to do with the UI framework. The X11 dependency comes as part of the clipboard integration (which I'd argue should be optional or even removed). Still, I…",{"id":128,"by":129,"text":130},"46734665","sigmonsays","this stopped me from go installing it too on nixos. I'm not gonna put the effort in to run it. There should be a build tag to disable clipboard, that'd be the easiest way around…",{"value":132,"source":86,"evidence":133},"macOS Gatekeeper blocks the unsigned binary",[134,138],{"id":135,"by":136,"text":137},"46734485","GeoffKnauth","Using brew, I got \"Apple could not verify `whosthere' is free of malware that may harm your Mac or compromise your privacy.\" [Move to Trash] [Done]",{"id":139,"by":140,"text":141},"46733795","hk1337","> Apple could not verify “whosthere” is free of malware that may harm your Mac or compromise your privacy. Couldn't run it on macOS Tahoe. I believe this requires me lowering the…",{"value":143,"source":86,"evidence":144},"Finds fewer hostnames than Advanced IP Scanner",[145],{"id":146,"by":147,"text":148},"46734500","N3802E","This looks great! I've been searching for something like this for ever. Some feedback of what I found on my network, as compared to some other scanners I've used. I've never seen…",{"value":150,"source":86,"evidence":151},"IPv4-only",[152],{"id":153,"by":102,"text":154},"46741187","Seems IPv4-only, which most LANs aren't since a good while.",[156,160,170,180],{"value":157,"source":86,"evidence":158},"Reverse DNS lookup of IPs",[159],{"id":89,"by":90,"text":91},{"value":161,"source":86,"evidence":162},"Command-line flags for interface and settings",[163,167],{"id":164,"by":165,"text":166},"46732737","84634E1A607A","Overall good work. I'd request an `-i` command-line parameter to specify the interface to scan (and I'd prefer ALL params being able to be read from command line params). I think…",{"id":168,"by":11,"text":169},"46732986","That's correct. To avoid overloading the local network, the initial scan has a built-in safeguard: 1. It only scans the subnet of the configured network interface. 2. The scan is…",{"value":171,"source":86,"evidence":172},"Export results beyond daemon HTTP API",[173,177],{"id":174,"by":175,"text":176},"46735379","ryancnelson","is the only way to export the results \"run in daemon mode and curl yourself\"?",{"id":178,"by":11,"text":179},"46739372","In the current version yes, never intended to build it as pure cli app. But if there is a lot of interest in this functionality this is something I can focus on in upcoming…",{"value":181,"source":86,"evidence":182},"Logging new arrivals for intrusion detection",[183],{"id":184,"by":185,"text":186},"46734267","genericacct","Installed on raspbian, works wonders, much better than the thing i vibecoded yesterday. One feature I'd like: recording new arrivals to a log with all the info so it can be used…",[188,198],{"value":189,"source":86,"evidence":190},"How to keep updated when installed via go install",[191,195],{"id":192,"by":193,"text":194},"46734714","vzaliva","I am not a golang user. If I install as recommended via `go` command on Linux how do I make sure it is updated when new versions are released? I wish it has a .deb package..",{"id":196,"by":98,"text":197},"46735393","“go install” does not have an update mechanism. I imagine most people using it would consider such an anti-feature; it is not a package manager. I certainly don’t want programs I…",{"value":199,"source":86,"evidence":200},"Why X11 dependency for a TUI",[201],{"id":202,"by":203,"text":204},"46736339","M95D","Why the X11 dependency if it's a TUI? I was expecting ncurses.",[206,213,217,221],{"value":207,"source":86,"evidence":208},"nmap",[209,210],{"id":108,"by":109,"text":110},{"id":211,"by":109,"text":212},"46737879","That nmap command does the same thing as the author's command, except for the UI, for which there are dozens of nmap-uis available.",{"value":214,"source":86,"evidence":215},"Advanced IP Scanner",[216],{"id":146,"by":147,"text":148},{"value":218,"source":86,"evidence":219},"Angry IP Scanner",[220],{"id":146,"by":147,"text":148},{"value":222,"source":86,"evidence":223},"Discovery.app",[224],{"id":225,"by":226,"text":227},"46738758","adi_kurian","Looks great. Discovery.app is also useful if you’re mostly dealing with Apple \u002F Bonjour-heavy networks. https:\u002F\u002Fapps.apple.com\u002Fus\u002Fapp\u002Fdiscovery-dns-sd-browser\u002Fid1381004916",{"comments":32,"answered":38,"key":229},[230,231,232],{"id":54,"text":55},{"id":61,"text":62},{"id":168,"text":169},{"commenters":234,"max_depth":235,"maker_replies":32,"first_comment_mins":42,"lifespan_hours":236},63,6,48,[238,240,242,244,246,248,250,254,256,259,260,261,264,266,270,273,275,278,281,284,287,291,294,297,300,303,305,307,310,313,317,321,323,325,328,331,332,335,337,340,342,344,347,349,353,354,355,358,360,362,365,367,370,371,373,375,378,379,383,387,389,393,397,400,405,409,411,415,417,422,426,428,430,433,436,438,441,442,446,450,454,456,457,461,464,466,469,471,474],[54,42,42,239,11,44],"project\u002Fneutral\u002Fnone",[89,42,46,241,90,42],"project\u002Fpositive\u002Fexecution",[184,42,46,243,185,42],"project\u002Fpositive\u002Fidea",[146,42,38,245,147,42],"project\u002Fmixed\u002Fperformance",[93,42,46,247,94,42],"project\u002Fpositive\u002Fnone",[202,42,38,249,203,42],"project\u002Fneutral\u002Fdesign",[251,42,42,252,253,42],"46736475","commenter\u002Fneutral\u002Fnone","bestham",[108,44,44,255,109,42],"project\u002Fcritical\u002Fidea",[257,44,42,252,258,42],"46737424","zbentley",[211,44,42,252,109,42],[112,44,42,252,113,42],[262,44,42,252,263,42],"46739235","andrewxdiamond",[61,44,42,265,11,44],"maker\u002Fneutral\u002Fnone",[267,44,38,268,269,42],"46740366","project\u002Fneutral\u002Fidea","gerdesj",[164,271,38,272,165,42],2,"project\u002Fmixed\u002Fexecution",[168,271,42,274,11,44],"maker\u002Fneutral\u002Fperformance",[276,38,46,241,277,42],"46741537","yu3zhou4",[279,18,38,239,280,42],"46733175","mrcaramelpants",[282,18,38,239,283,42],"46735829","adzm",[285,18,38,239,286,42],"46741111","pinkmuffinere",[288,18,42,289,290,42],"46753144","other\u002Fneutral\u002Fnone","cassianoleal",[292,46,42,289,293,42],"46734734","zahlman",[295,46,42,289,296,42],"46734846","jen20",[298,46,42,289,299,42],"46734870","pstuart",[301,46,42,289,302,42],"46738560","awesome_dude",[304,46,42,289,102,42],"46741210",[306,46,42,289,299,42],"46734850",[308,46,42,289,309,42],"46735317","cpuguy83",[311,235,38,239,312,42],"46734839","jasonjmcghee",[314,315,38,239,316,42],"46734752",7,"apitman",[318,319,46,320,269,42],"46740450",8,"maker\u002Fpositive\u002Fnone",[192,322,38,239,193,42],9,[324,322,42,289,293,42],"46734741",[326,322,42,289,327,42],"46735338","mzajc",[329,322,42,289,330,42],"46735499","foresto",[196,322,42,289,98,42],[333,322,42,289,334,42],"46741229","esseph",[336,322,42,289,98,42],"46746885",[338,322,38,239,339,42],"46737218","yobert",[341,322,42,289,193,42],"46749720",[135,39,44,343,136,42],"project\u002Fcritical\u002Fexecution",[345,39,42,252,346,42],"46734603","cedws",[348,39,42,289,98,42],"46735435",[350,351,38,249,352,42],"46732693",11,"petcat",[120,351,44,343,121,42],[124,351,44,343,125,42],[356,351,42,357,11,44],"46733189","maker\u002Fneutral\u002Fexecution",[359,351,44,343,121,42],"46733303",[361,351,42,357,11,44],"46733953",[363,351,42,252,364,42],"46733810","ok123456",[366,351,44,343,352,42],"46733526",[368,351,38,369,121,42],"46733589","project\u002Fneutral\u002Fexecution",[128,351,44,343,129,42],[372,351,44,343,121,42],"46736649",[374,351,42,357,11,44],"46742455",[376,32,46,243,377,42],"46733208","kapitanjakc",[225,34,46,247,226,42],[380,381,42,289,382,42],"46742622",14,"pjmlp",[384,385,38,265,386,42],"46734476",15,"Evidlo",[73,385,42,388,11,44],"maker\u002Fneutral\u002Fdesign",[390,391,38,268,392,42],"46734117",16,"Havoc",[394,395,44,255,396,42],"46740384",17,"eqvinox",[398,33,38,272,399,42],"46733319","girishso",[401,402,46,403,404,42],"46738516",19,"project\u002Fpositive\u002Fdesign","jarek83",[406,407,44,343,408,42],"46732310",20,"Anonbrit",[410,407,42,357,11,44],"46733011",[412,407,38,413,414,42],"46736531","project\u002Fmixed\u002Fdesign","47282847",[97,416,46,247,98,42],21,[418,419,42,420,421,42],"46734013",22,"other\u002Fneutral\u002Fidea","est",[423,424,46,241,425,42],"46732390",23,"coolius",[427,424,42,357,11,44],"46733101",[429,424,38,357,125,42],"46733263",[431,424,42,432,11,44],"46733673","commenter\u002Fneutral\u002Fexecution",[434,424,42,432,435,42],"46735386","contingencies",[153,437,44,343,102,42],24,[439,437,42,252,440,42],"46741239","SturgeonsLaw",[101,437,42,252,102,42],[443,444,42,289,445,42],"46738806",25,"pimlottc",[447,448,46,247,449,42],"46743040",26,"dalton_zk",[451,452,46,243,453,42],"46742757",27,"spacecadet",[174,455,38,239,175,42],28,[178,455,42,265,11,44],[458,459,38,268,460,42],"46740247",29,"vivzkestrel",[462,459,44,255,463,42],"46746566","fragmede",[139,465,44,343,140,42],30,[467,465,42,252,468,42],"46733902","rawgreaze",[470,465,42,265,11,44],"46733980",[472,465,38,369,473,42],"46734541","phubbard",[475,465,38,369,476,42],"46741498","wtetzner",[],[479,484,489,494,498,503],{"id":480,"name":481,"points":482,"category":483},"46721802","isometric.nyc",1325,"ai",{"id":485,"name":486,"points":487,"category":488},"46793693","HN Arcade",352,"consumer_social",{"id":490,"name":491,"points":492,"category":493},"46779522","one-agent-one-browser",324,"dev_tools",{"id":495,"name":496,"points":497,"category":488},"46802254","Moltbook",287,{"id":499,"name":500,"points":501,"category":502},"46753301","Bonsplit",245,"languages",{"id":504,"name":505,"points":506,"category":493},"46799898","Sherlock",218,false,"v2",{"id":510,"name":5,"line":6,"ai":507,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":511,"top":18,"kw":512,"maker":11,"domain":10,"tier":19,"attempts":42,"strip":513,"url":9,"mix":514,"praise":85,"objection":117,"sub":21},46731432,0.04,[24,25,26,27,28],"5551003530000430031311111531515531053113",[32,33,18,34],1794036691070]