एक "हूज़ होम" प्रोजेक्ट के लिए मेरे राउटर से मैक एड्रेस को खींचने का एक तरीका चाहिए


11

इस तरह की परियोजना ब्लूटूथ के साथ पहले भी की जा चुकी है, लेकिन 30 फुट की रेंज और अतिरिक्त बैटरी की खपत मुझे लोगों के फोन के बजाय राउटर पिंग करना चाहती है। मुझे पता है कि राउटर प्रत्येक डिवाइस के लिए अद्वितीय मैक पते का ट्रैक रखता है। मैं प्रत्येक फोन के पते को पंजीकृत करने की उम्मीद कर रहा था और पीआई समय-समय पर एक गतिशील वेब पेज को अपडेट करने के लिए राउटर की जांच करता हूं कि कौन घर पर है।

मैं जानना चाहता हूं कि क्या पीआई के साथ इस जानकारी को खींचने का एक उचित तरीका है।


वाईफ़ाई के बारे में क्या है (इसके बजाय फोन होस्टनाम को पिंग करें)?
user236012

2
आप राउटर से स्थिर आईपी पते भी असाइन कर सकते हैं, फिर उपकरणों की पहचान करने के लिए nmap और IP पतों का उपयोग करें।
आर्टऑफकोड

मैंने यहां विंडोज पर C # में कुछ ऐसा ही किया है: stackoverflow.com/questions/2567107/… - यदि आप चाहें तो मुझे सबसे हाल का संस्करण कोड भेजकर खुशी होगी। मुझे नहीं पता कि रास्पबेरी पाई पर C # कितना उपयोगी है, लेकिन यह आपको सही दिशा में इंगित करना चाहिए। यह मज़बूती से यह पता लगाता है कि मैं घर से पहले हूँ, यहाँ तक कि मैं गैरेज से अंदर आता हूँ।
एरिक टेनेक

मैं इस + पूरी बहुत अधिक जानकारी को राउटर पर बैश स्क्रिप्ट डालकर कैप्चर करता हूं जो हर मिनट वेबसर्वर में परिणाम पोस्ट करता है। इस sysem के साथ, मैं इंटरनेट अपटाइम, कनेक्टेड क्लाइंट्स, WAN IP's, फाइबर एटेन्यूएशन और पावर बजट, वीओआइपी सेवाएं, वाईफाई पासवर्ड आदि की निगरानी और प्रबंधन करता हूं। माइलेज आपके राउटर के सीपीयू पावर द्वारा अलग होता है।
EDP

1
राउटर पर स्क्रीन स्क्रैपिंग? आप एक Linuxbased रूटर (ओपनर) के लिए भी अपग्रेड कर सकते हैं और बस arp कैश में लॉग इन और देख सकते हैं।
थोरबजोरन राव एंडरसन

जवाबों:


6

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

यहाँ पर एक त्वरित उदाहरण है कि मैं कैसे आगे बढ़ूंगा;

आपके राउटर के पेज पर आपको निम्नलिखित जैसा कुछ मिल सकता है;

<div id="flex">
 <div id="dm-name">
  name : Your_device_name
 </div>
 <div id="dm-ip">
  IP : 192.168.x.xxx
 </div>
 <div id="dm-mac">
  <span>MAC:D4:04:CD:FE:5A:17</span>
 </div>
</div>

इसलिए हम राइट जानते हैं कि हर डिवाइस को उसी तरह सूचीबद्ध किया जाएगा। और यह कि सभी मैक एड्रे की लंबाई समान होगी।

स्क्रिप्ट कुछ ऐसी हो सकती है;

var string_to_parse = "file read from router.html";
cursor = 0;  // The position of your cursor;
i =0;
    while(cursor > 0){

    begin_at = string_to_parse.indeOf('MAC:');
    end_at = length_of_Mac; // this is standard for al mac

    mac[i] = string_to_parse.substring(begin_at, begin_at + end_at);
    cursor = begin_at + end_at;
i++;
    }

इस कोड को ट्विक करने की आवश्यकता होगी, लेकिन विचार यह है। इसका एक लूप जो सभी मैक एड्रेस को खोजने के लिए सभी फ़ाइल चलाएगा। जब तक यह फ़ाइल के अंत तक नहीं पहुंचता।


क्या यही मुझे करना होगा। यह पता लगाने का अतिरिक्त बोनस है कि क्या आपका राउटर मृत है।
स्लीपबेटमैन

1
+1 वेबसाइट स्क्रैपिंग एक दिलचस्प विकल्प है। मैं थोड़ा नाराज हूं मैंने खुद इसके बारे में नहीं सोचा।
Jacobm001

@MadeInDreams राउटर पेज जिसे आप संदर्भित करते हैं, वह राउटर डीएचसीपी लीज पेज है? या क्या कोई राउटर सक्रिय कनेक्शन पृष्ठ है?
चेतन भार्गव

अपने राउटर पर निर्भर करें लेकिन उनमें से अधिकांश में एक पृष्ठ है जो सभी डिवाइस से जुड़ा हुआ है। यह उदाहरण मेरे नेटवर्क के मुख्य पृष्ठ
MadeInDreams

6

अपने रास्पबेरी पाई पर अद्वितीय मैक पतों को ट्रैक करने के लिए, आपको एक उपकरण (बल्कि सेवा) की आवश्यकता होती है जिसे arpwatch कहा जाता है । मैंने बीएसडी पर बड़े पैमाने पर arpwatch का उपयोग किया है और यह सभी arp और rarp अनुरोधों को syslog में लॉग करता है।

Syslog से आप दिनांक और समय और मैक पते पार्स कर सकते हैं।

एआरपी कार्य और तालिका केवल भौतिक नेटवर्क (तकनीकी शब्द: टकराव डोमेन) पर मौजूद है। जब एक पैकेट दूसरे नेटवर्क के लिए निकलता है, तो स्रोत मैक एड्रेस को राउटर के मैक एड्रेस से बदल दिया जाता है।

arpरास्पबेरी पाई पर रनिंग कमांड केवल होस्ट के साथ मैक (आईपी संचार) को सूचीबद्ध करेगा, जिसने होस्ट (रास्पबेरी पाई) चलाया है, जिसके साथ मेजबान (आईपी संचार)। यह नेटवर्क पर अन्य मेजबानों के मैक पतों को सूचीबद्ध नहीं करेगा ।

एक और उन्नत तरीका एक मेजबान खोज करने के लिए अपने रास्पबेरी पाई पर नैम्प का उपयोग करना होगा । आप nmap -sPनेटवर्क पर सभी होस्ट को पिंग करने के लिए उपयोग कर सकते हैं । यह आपको आपके नेटवर्क पर सभी सक्रिय होस्ट के आईपी पते बताएगा। फिर आप सक्रिय होने वाले मैक का पता लगाने के लिए arp कमांड चला सकते हैं।

chetan@Linux:~$ nmap -sP 192.168.100.0/24

Starting Nmap 6.40 ( http://nmap.org ) at 2016-02-23 16:08 PST
Nmap scan report for 192.168.100.4
Host is up (0.0087s latency).
Nmap scan report for 192.168.100.58
Host is up (0.0024s latency).
Nmap scan report for 192.168.100.160
Host is up (0.049s latency).
Nmap scan report for 192.168.100.164
Host is up (0.063s latency).
Nmap done: 256 IP addresses (4 hosts up) scanned in 2.68 seconds

1
मुझे लगता है कि यह संभवतः वेब स्क्रैपिंग की तुलना में बहुत अधिक मजबूत और लचीला तरीका है। कई आईएसपी ने रूटर्स जारी किए हैं जो पेज को कनेक्टेड डिवाइसों को दिखाने के लिए माना जाता है w / जानकारी विश्वसनीय नहीं होगी।
गोल्डीलॉक्स

@goldilocks +1, हाँ, मैंने इसके बारे में सोचा जब मैंने स्वीकार किए गए उत्तर को वापस ले लिया। मुझे लगता है कि उनके पास एक राउटर है जिसमें सक्रिय कनेक्शन (एसपीआई स्थिति या समान) के लिए एक पृष्ठ है। अच्छा राउटर उनके पास है।
चेतन भार्गव

4

मैं बस उंगलियों के कमांड लाइन संस्करण के साथ खेल रहा हूं । यह नेटवर्क पर सब कुछ खोजने और CSV फ़ाइलों को थूकने का एक सभ्य काम करता है :

  • आईपी ​​पता
  • नोड का कस्टम नाम (यदि आपने .properties फ़ाइल में कस्टम नाम निर्दिष्ट किया है)
  • राज्य (UP / DOWN)
  • अंतिम परिवर्तन का टाइमस्टैम्प
  • होस्ट नाम (यदि आपने DNS को सक्षम किया है)
  • हार्डवेयर पता (यदि आप एक स्थानीय नेटवर्क खोज रहे हैं)
  • हार्डवेयर विक्रेता

पिछले उत्तरों के अनुसार, एक वेब पेज पर CSV की सामग्री प्राप्त करने के लिए कुछ पाठ हेरफेर आवश्यक होगा, और सावधान रहें कि आप बाहरी रूप से क्या प्रकाशित कर रहे हैं।

मैंने एंड्रॉइड वर्जन का बड़े पैमाने पर उपयोग किया है और यह मेरे होम नेटवर्क पर सब कुछ खोजने का अच्छा काम करता है (और सार्वजनिक वाईफाई पर खेलने के लिए मज़ेदार है)।


3

कमांड arpआपको नेटवर्क से जुड़े उपकरणों की एक सूची देगा। आपको डेटा प्राप्त करने के लिए कुछ बुनियादी स्ट्रिंग हेरफेर करने की आवश्यकता होगी, लेकिन यह निश्चित रूप से जानकारी प्राप्त करने की कोशिश करने से आसान होगा।

कार्यात्मकता नोट :

कुछ राउटर डिफ़ॉल्ट रूप से इस प्रकार की कार्यक्षमता को अवरुद्ध करते हैं, और आपका इस तरह से कॉन्फ़िगर किया जा सकता है। यदि यह काम नहीं करता है, तो इसके चारों ओर खुदाई करें यह जांचने के लिए कि इसे कैसे अनुमति दी जाए।

सुरक्षा नोट :

वेबसाइट होने के कुछ बहुत गंभीर सुरक्षा निहितार्थ हैं जो प्रदर्शित करता है कि वर्तमान में घर कौन है। कृपया जगह में सुरक्षा के बारे में बहुत सावधानी से सोचें, और इसमें शामिल जोखिमों के लिए यह पर्याप्त है या नहीं।


अच्छा विचार है, मुझे लगता है कि मैं अपनी पिछली टिप्पणी वापस लेता हूं।
Ghanima

1
यहाँ इसके लिए arp का उपयोग करने के बारे में कुछ दिलचस्प दिलचस्प बातें हैं । वे सुझाव देते हैं कि अगर वे किसी भी पैकेट को आरपीपी-रनिंग डिवाइस में नहीं भेजते हैं, तो डिवाइस दिखाई नहीं दे सकते हैं, और एक पिंग आवश्यक हो सकता है।
goobering

@ अहंकार करना +1। बस arp कमांड चलाने से नेटवर्क पर सभी सक्रिय होस्ट को सूचीबद्ध नहीं किया जाएगा। Arpwatch नेटवर्क पर सभी arp पैकेट को लॉग करेगा।
चेतन भार्गव

1

यह करना संभव है, और अन्य लोगों ने कुछ अच्छे तरीके सुझाए हैं। मैंने कुछ साल पहले एक अजगर की पटकथा लिखी थी, एक नेटगियर राउटर से इस जानकारी को खंगालने के लिए और इसे गिथब पर फेंक दिया। यह यहाँ पाया जा सकता है । यह कच्चा है, और इसे देखकर अब मैं इसे कुछ अलग तरीके से फिर से तैयार करूंगा, लेकिन इसने ठीक उसी उद्देश्य के लिए काम किया जैसा कि आप कुछ वर्षों के लिए हैं जब तक मैं स्थानांतरित नहीं हुआ।


+1 आपकी स्क्रिप्ट निश्चित रूप से बेहतर हो सकती है, लेकिन यह समस्या का एक शानदार समाधान है।
Jacobm001
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.