अपडेट पर वापस जाएँ
New releaseAug 20, 2026

whosthere v0.8.3

Go में लिखा गया एक इंटरैक्टिव टर्मिनल यूज़र इंटरफ़ेस (TUI) के साथ स्थानीय क्षेत्र नेटवर्क खोज उपकरण। अपने LAN को सहज तरीके से खोजें, अन्वेषण करें और समझें। खटखटाओ.. कौन है वहाँ? 🚪

साझा करें

Whosthere

Go Report Card Go Version License GitHub Downloads (all assets, all releases) GitHub Release GitHub Repo stars

लोकल एरिया नेटवर्क (LAN) डिस्कवरी टूल जो Go में लिखा गया है और इसमें एक इंटरैक्टिव टर्मिनल यूज़र इंटरफ़ेस (TUI) है। अपने LAN को सहज तरीके से खोजें, एक्सप्लोर करें और समझें।

Whosthere अन-प्रिविलेज्ड, समवर्ती स्कैन करता है, जिसमें mDNS और SSDP स्कैनर का उपयोग किया जाता है। इसके अतिरिक्त, यह ARP रेज़ॉल्यूशन को ट्रिगर करने के लिए TCP/UDP कनेक्शन का प्रयास करके स्थानीय सबनेट को स्वीप करता है, फिर आपके लोकल एरिया नेटवर्क पर उपकरणों की पहचान करने के लिए ARP कैश पढ़ता है। यह तकनीक बिना ऊंचे विशेषाधिकारों की आवश्यकता के ARP कैश को भर देती है। सभी खोजे गए उपकरणों को OUI लुकअप से समृद्ध किया जाता है ताकि उपलब्ध होने पर निर्माता प्रदर्शित हो सकें।

Whosthere उस प्रश्न का उत्तर देने का एक मैत्रीपूर्ण, सहज तरीका प्रदान करता है जो प्रत्येक नेटवर्क प्रशासक पूछता है: "मेरे नेटवर्क पर कौन है?"

demo gif

विशेषताएँ

  • इंटरैक्टिव TUI: खोजे गए उपकरणों को सहजता से नेविगेट करें और एक्सप्लोर करें।
  • तेज़ और समवर्ती: एक साथ कई डिस्कवरी विधियों का लाभ उठाता है।
  • किसी ऊंचे विशेषाधिकार की आवश्यकता नहीं: पूरी तरह से उपयोगकर्ता-स्पेस में चलता है।
  • डिवाइस संवर्धन: डिवाइस निर्माताओं को दिखाने के लिए OUI लुकअप का उपयोग करता है।
  • एकीकृत पोर्ट स्कैनर: मिले होस्ट पर वैकल्पिक सेवा डिस्कवरी (केवल अनुमति के साथ डिवाइस स्कैन करें!)
  • HTTP API के साथ डेमॉन मोड: पृष्ठभूमि में चलाएं और अन्य टूल के साथ एकीकृत करें।
  • थीमिंग और कॉन्फ़िगरेशन: YAML कॉन्फ़िगरेशन के माध्यम से लुक और व्यवहार को निजीकृत करें।

इंस्टॉलेशन

Homebrew के माध्यम से brew के साथ:

brew install whosthere

NixOS पर nix के साथ:

nix profile install nixpkgs#whosthere

Arch Linux पर yay के साथ:

yay -S whosthere-bin

यदि आपका पैकेज मैनेजर सूचीबद्ध नहीं है, तो आप हमेशा Go के साथ इंस्टॉल कर सकते हैं:

go install github.com/ramonvermeulen/whosthere@latest

या स्रोत से बिल्ड करें:

git clone https://github.com/ramonvermeulen/whosthere.git
cd whosthere
make build

इसके अतिरिक्त, आप रिलीज़ पेज से पहले से बिल्ट बाइनरी डाउनलोड कर सकते हैं।

उपयोग

इंटरैक्टिव डिस्कवरी के लिए TUI चलाएं:

whosthere

एकल स्कैन करने और परिणाम आउटपुट करने के लिए CLI के रूप में चलाएं:

whosthere scan -t 5

परिणामों को JSON फ़ाइल में आउटपुट करें:

whosthere scan -t 5 --json --pretty > devices.json

HTTP API के साथ डेमॉन के रूप में चलाएं:

whosthere daemon --port=8080

अतिरिक्त कमांड लाइन विकल्प चलाकर पाए जा सकते हैं:

whosthere --help

कुंजी बाइंडिंग्स (TUI)

कुंजीक्रिया
/रेगेक्स खोज शुरू करें
kऊपर जाएं
jनीचे जाएं
gशीर्ष पर जाएं
Gनिचले भाग पर जाएं
yचयनित डिवाइस का IP कॉपी करें
Yचयनित डिवाइस का MAC कॉपी करें
enterडिवाइस विवरण दिखाएं
CTRL+tथीम चयनकर्ता टॉगल करें
CTRL+iइंटरफ़ेस चयनकर्ता टॉगल करें
CTRL+c/qएप्लिकेशन बंद करें
ESCखोज साफ़ करें / वापस जाएं
p (विवरण दृश्य)डिवाइस पर पोर्ट स्कैन शुरू करें
tab (मोडल दृश्य)बटन चयन स्विच करें

कॉन्फ़िगरेशन

Whosthere निम्नलिखित प्राथमिकता (उच्चतम से निम्नतम) के साथ कई कॉन्फ़िगरेशन विधियों का समर्थन करता है:

  1. कमांड लाइन फ़्लैग - उच्चतम प्राथमिकता। उपलब्ध फ़्लैग के लिए whosthere --help देखें।
  2. पर्यावरण चर - WHOSTHERE__ से उपसर्ग। पर्यावरण चर के माध्यम से कॉन्फ़िगरेशन देखें।
  3. कॉन्फ़िगरेशन फ़ाइल - YAML कॉन्फ़िग फ़ाइल। कॉन्फ़िगरेशन फ़ाइल देखें।
  4. डिफ़ॉल्ट मान - फ़ॉलबैक डिफ़ॉल्ट। config.go में DefaultConfig() देखें।

कॉन्फ़िगरेशन फ़ाइल

Whosthere निम्नलिखित क्रम में कॉन्फ़िगरेशन फ़ाइल की तलाश करता है, पहली मिली फ़ाइल का उपयोग करता है:

  1. --config फ़्लैग या WHOSTHERE_CONFIG पर्यावरण चर द्वारा निर्दिष्ट पथ
  2. $XDG_CONFIG_HOME/whosthere/config.yaml (यदि XDG_CONFIG_HOME सेट है)
  3. ~/.config/whosthere/config.yaml (डिफ़ॉल्ट स्थान)

उदाहरण कॉन्फ़िगरेशन:

# Uncomment the next line to configure a specific network interface - uses OS default if not set
# network_interface: eth0

# When enabled, devices from all network interfaces are shown and persist when switching interfaces
# Note: if two interfaces share the same subnet (e.g. both use 192.168.1.x), devices may get merged
# since they are identified by IP address. Use with caution on overlapping subnets.
all_interfaces: false

# How often to run discovery scans
scan_interval: 20s

# Maximum timeout for each scan, recommended to be less than the scan interval
scan_timeout: 10s

scanners:
  mdns:
    enabled: true
  ssdp:
    enabled: true
  arp:
    enabled: true

sweeper:
  enabled: true
  interval: 5m
  timeout: 20s

port_scanner:
  timeout: 5s
  # List of TCP ports to scan on discovered devices
  tcp: [21, 22, 23, 25, 80, 110, 135, 139, 143, 389, 443, 445, 993, 995, 1433, 1521, 3306, 3389, 5432, 5900, 8080, 8443, 9000, 9090, 9200, 9300, 10000, 27017]

splash:
  enabled: true
  delay: 1s

theme:
  # When disabled, the TUI will use the terminal it's default ANSI colors
  # Also see the NO_COLOR environment variable to completely disable ANSI colors
  enabled: true

  # See the complete list of available themes at https://github.com/ramonvermeulen/whosthere/tree/main/internal/ui/theme/theme.go
  # Set name to "custom" to use the custom colors below
  # For any color that is not configured it will take the default theme value as fallback
  name: default

  # Disable ANSI colors completely, overrides theme.enabled
  # Can also be set via NO_COLOR or WHOSTHERE__THEME__NO_COLOR environment variables
  # no_color: false

  # Custom theme colors (uncomment and set name: custom to use)
  # primitive_background_color: "#000a1a"
  # contrast_background_color: "#001a33"
  # more_contrast_background_color: "#003366"
  # border_color: "#0088ff"
  # title_color: "#00ffff"
  # graphics_color: "#00ffaa"
  # primary_text_color: "#cceeff"
  # secondary_text_color: "#6699ff"
  # tertiary_text_color: "#ffaa00"
  # inverse_text_color: "#000a1a"
  # contrast_secondary_text_color: "#88ddff"

पर्यावरण चर

सामान्य पर्यावरण चर

चरविवरण
WHOSTHERE_CONFIGकॉन्फ़िगरेशन फ़ाइल का पथ, डिफ़ॉल्ट स्थान को ओवरराइट करने के लिए।
WHOSTHERE_LOGलॉग स्तर सेट करें (उदा., debug, info, warn, error). डिफ़ॉल्ट info है।
NO_COLORTUI में ANSI रंग अक्षम करें।

पर्यावरण चर के माध्यम से कॉन्फ़िगरेशन

YAML कॉन्फ़िगरेशन में उपलब्ध कोई भी कॉन्फ़िगरेशन विकल्प WHOSTHERE__ उपसर्ग (डबल अंडरस्कोर नोट करें) का उपयोग करके पर्यावरण चर के माध्यम से सेट किया जा सकता है। नेस्टेड कॉन्फ़िगरेशन कुंजियाँ डबल अंडरस्कोर द्वारा अलग की जाती हैं, और कुंजियाँ केस-असंवेदनशील होती हैं।

उदाहरण:

  • WHOSTHERE__SPLASH__ENABLED=false - स्प्लैश स्क्रीन अक्षम करें, YAML कॉन्फ़िग में splash.enabled: false के समतुल्य
  • WHOSTHERE__SPLASH__DELAY=2s - स्प्लैश स्क्रीन विलंब 2 सेकंड सेट करें, YAML कॉन्फ़िग में splash.delay: 2s के समतुल्य
  • WHOSTHERE__SCAN_INTERVAL=30s - स्कैन अंतराल 30 सेकंड सेट करें, YAML कॉन्फ़िग में scan_interval: 30s के समतुल्य
  • WHOSTHERE__SCANNERS__MDNS__ENABLED=false - mDNS स्कैनर अक्षम करें, YAML कॉन्फ़िग में scanners.mdns.enabled: false के समतुल्य
  • WHOSTHERE__PORT_SCANNER__TCP=80,443,8080 - स्कैन करने के लिए कस्टम TCP पोर्ट सेट करें, YAML कॉन्फ़िग में port_scanner.tcp: [80, 443, 8080] के समतुल्य
  • WHOSTHERE__THEME__NAME=cyberpunk - थीम को साइबरपंक पर सेट करें, YAML कॉन्फ़िग में theme.name: cyberpunk के समतुल्य

डेमॉन मोड HTTP API

Whosthere को डेमॉन मोड में चलाने पर, यह निम्नलिखित एंडपॉइंट के साथ एक बहुत ही सरल HTTP API प्रदर्शित करता है:

MethodEndpointविवरण
GET/devicesसभी खोजे गए उपकरणों की सूची प्राप्त करें
GET/device/{ip}किसी विशिष्ट उपकरण का विवरण प्राप्त करें
GET/healthस्वास्थ्य जांच

थीम्स

थीम को कॉन्फ़िगरेशन फ़ाइल के माध्यम से या रनटाइम पर CTRL+t कुंजी बाइंडिंग के माध्यम से कॉन्फ़िगर किया जा सकता है। उपलब्ध थीम की पूरी सूची यहाँ पाई जा सकती है, अपनी खुद की थीम जोड़ने के लिए PR खोलने में संकोच न करें!

थीम कॉन्फ़िगरेशन का उदाहरण:

theme:
  enabled: true
  name: cyberpunk

जब name को custom पर सेट किया जाता है, तो अन्य रंग विकल्पों का उपयोग करके अपनी कस्टम थीम बनाई जा सकती है। जब enabled विकल्प को false पर सेट किया जाता है, तो TUI टर्मिनल के डिफ़ॉल्ट ANSI रंगों का उपयोग करेगा। जब NO_COLOR पर्यावरण चर सेट किया जाता है, तो सभी ANSI रंग अक्षम हो जाएंगे।

लॉगिंग

लॉग एप्लिकेशन की स्थिति निर्देशिका में लिखे जाते हैं:

  • $XDG_STATE_HOME/whosthere/app.log (यदि XDG_STATE_HOME सेट है)
  • ~/.local/state/whosthere/app.log (फ़ॉलबैक Linux/MacOS)
  • %LOCALAPPDATA%/whosthere/app.log (फ़ॉलबैक Windows)

जब TUI मोड में नहीं चल रहा हो, तो लॉग कंसोल पर भी लिखे जाते हैं।

प्लेटफॉर्म

Whosthere निम्नलिखित प्लेटफॉर्म पर समर्थित है:

  • Linux
  • macOS
  • Windows

ज्ञात समस्याएँ

क्लिपबोर्ड कार्यक्षमता के लिए, एक go-clipboard का फ़ॉर्क उपयोग किया जाता है। सुनिश्चित करें कि आपके OS के लिए उपयुक्त कॉपी टूल स्थापित है:

OSसमर्थित कॉपी टूल्स
Darwinpbcopy
Windowsclip.exe
Linux/FreeBSD/NetBSD/OpenBSD/DragonflyX11: xsel, xclip
Wayland: wl-copy

अस्वीकरण

Whosthere उन नेटवर्कों पर उपयोग के लिए है जहाँ आपके पास नेटवर्क डिस्कवरी और स्कैनिंग करने की अनुमति है, जैसे आपका अपना होम नेटवर्क। बिना अधिकार के नेटवर्क स्कैन करना अवैध और अनैतिक हो सकता है। इस टूल का उपयोग करने से पहले हमेशा उचित प्राधिकरण प्राप्त करें।

यह टूल मुख्य रूप से शैक्षिक उद्देश्यों और होम नेटवर्क अन्वेषण के लिए बनाया गया था। यद्यपि यह कार्यात्मक और उपयोगी है, इसे पेशेवर-ग्रेड नेटवर्क निगरानी समाधान नहीं माना जाना चाहिए। परिणाम अविशिष्ट स्कैनिंग तकनीकों पर आधारित हैं और व्यापक नहीं हो सकते। महत्वपूर्ण नेटवर्क विश्लेषण या सुरक्षा मूल्यांकन के लिए, औपचारिक समर्थन वाले स्थापित पेशेवर उपकरणों पर विचार करें।

योगदान

योगदान और सुझाव जैसे फीचर अनुरोध, बग रिपोर्ट या सुधार का स्वागत है! GitHub रिपॉजिटरी पर मुद्दे खोलने या पुल रिक्वेस्ट सबमिट करने के लिए स्वतंत्र महसूस करें। कृपया किसी भी बड़े बदलाव को लागू करने से पहले GitHub मुद्दे पर चर्चा करना सुनिश्चित करें।

श्रेणियाँ