मैक द्वारा एक एनआईसी पिंग कर सकते हैं


28

मेरे पास एक डेबियन मशीन पर एनआईसी कार्ड है। मशीन को बंद कर दिया गया है, लेकिन मुझे यह जानने की जरूरत है कि क्या एनआईसी कार्ड चालू है ताकि मैं उसे जगाने के लिए बाद में (किसी अन्य डेबियन मशीन से) एक वेक-ऑन-लान मैजिक पैकेट भेज सकूं। मेरे पास कार्ड का मैक एड्रेस है। वहाँ किसी भी तरह से मैं ईथरनेट कार्ड को MAC द्वारा पिंग कर सकता हूं यह देखने के लिए कि क्या यह चालू है?

मैंने ARP प्रविष्टि बनाने का प्रयास किया:

arp -s 192.168.2.2 00-0c-0d-ef-02-03
ping 192.168.2.2

यह काम नहीं किया, क्योंकि एनआईसी कार्ड में यह आईपी पता नहीं है। इसलिए एनआईसी कार्ड से पिंग अनुरोध प्राप्त होगा, लेकिन इसका जवाब नहीं देगा। क्या इसके आसपास कोई रास्ता है?

मैं वेक-ऑन-लेन संदेश भेजने के लिए ईथर पैकेज का उपयोग कर रहा हूं।

जवाबों:


23

आपके पास उपकरण का उपयोग करने के arpingबजाय बेहतर भाग्य हो सकता है । टूल OSI मॉडलping के लेयर 3 स्तर पर काम करता है , जबकि लेयर 2 पर काम करता है।arping

फिर भी आपको इस उपकरण के साथ सिस्टम का IP जानना आवश्यक है। इसके 2 संस्करण हैं, सबसे अधिक यूनिक्स (एलेक्सी कुज़नेत्सोव) के साथ शामिल मानक एक संस्करण है जो केवल आईपी पते से निपट सकता है। दूसरे संस्करण (थॉमस Habets ') माना जाता है कि मैक पतों का उपयोग करके क्वेरी कर सकते हैं।

$ sudo arping 192.168.1.1 -c 1
ARPING 192.168.1.1 from 192.168.1.218 eth0
Unicast reply from 192.168.1.1 [00:90:7F:85:BE:9A]  1.216ms
Sent 1 probes (1 broadcast(s))
Received 1 response(s)

arpingpingआईसीएमपी पैकेट भेजने के बजाय, एआरपी पैकेट भेजने के बजाय इसी तरह काम करता है।

सिर्फ मैक का उपयोग करके सिस्टम का आईपी प्राप्त करना

मैक के आईपी को रिवर्स लुकअप करने के लिए यहां कुछ तरीके दिए गए हैं।

  1. nmap

    $ nmap -sP 192.168.1.0/24
    

    फिर इसी मशीन के लिए अपने arp कैश में देखें arp -an

  2. fping

    $ fping -a -g 192.168.1.0/24 -c 1
    

    फिर अपने arp कैशे में देखें, ऊपर की तरह ही।

  3. पिंग

    $ ping -b -c1 192.168.1.255
    

    फिर अपने arp कैशे में देखें, ऊपर की तरह ही।

  4. nbtscan (विंडोज़ केवल होस्ट करता है)

    $ nbtscan 192.168.1.0/24
    
    Doing NBT name scan for addresses from 192.168.1.0/24
    
    IP address       NetBIOS Name     Server    User             MAC address      
    ------------------------------------------------------------------------------
    192.168.1.0 Sendto failed: Permission denied
    192.168.1.4      MACH1            <server>  <unknown>        00-0b-12-60-21-dd
    192.168.1.5      MACH2            <server>  <unknown>        00-1b-a0-3d-e7-be
    192.168.1.6      MACH3            <server>  <unknown>        00-21-9b-12-b6-a7
    

3
arpingएक मैक पते को एक पैरामीटर के रूप में ले सकते हैं:arping -c 5 38:e7:d8:63:5e:a6

@MichaelMrozek - मैंने ऐसा तब किया था जब किसी ने मूल रूप से एक टिप्पणी के रूप में मेरे उत्तर को पोस्ट किया था और मैंने पढ़ा नहीं था कि मैंने arping के 2 संस्करणों के बारे में क्या कहा। अन्य उत्तर को हटा दिया गया है इसलिए मेरी साहसिक निराशाओं को बाहर निकालने के लिए धन्यवाद।
slm

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

1
@AlastorMoody - मैं कहूँगा कि आपको शायद WOL को W / NIC के WOL को चालू करने की अनुमति है। हालाँकि अगर आप BIOS WOL का समर्थन नहीं करते हैं, तो मुझे नहीं लगता कि आप NIC के होने पर भी इसका उपयोग कर पाएंगे। : WOL पर विकिपीडिया लेख देखें en.wikipedia.org/wiki/Wake-on-LAN । "समस्या निवारण मैजिक पैकेट" अनुभाग में मैं वही बताता हूं।
स्लम

@niervol: arpingएक मैक पते के लिए: हाँ, आलिंगन के दो कार्यान्वयन हैं 1. लिनक्स आईपुतिल्स से 2. ब्रैकेट्स द्वारा रैपिंग । --- केवल 2. कार्यान्वयन मैक पते को पिंग कर सकता है, लेकिन ऐसा पिंग बहुत मुश्किल है: पिंग मशीन को अभी भी टीसीपी / आईपी कॉन्फ़िगर किया जाना है (कम से कम एक आईपी पता) और यह एक पिंग को जवाब देने में सक्षम होना चाहिए: एक प्रसारण आईपी पता।
पाबौक

12

आप एक सामान्य एनआईसी को पिंग नहीं कर सकते क्योंकि एनआईसी अकेले कोई उत्तर नहीं भेजता है।

केवल एक रनिंग कंप्यूटर ही जवाब भेजने में सक्षम है

सामान्य नेटवर्क इंटरफ़ेस कार्ड स्वयं द्वारा कोई उत्तर नहीं भेजते हैं। ऐसा करने के लिए उन्हें हमेशा कंप्यूटर पर एक रनिंग सॉफ्टवेयर की आवश्यकता होती है।

जब कंप्यूटर का सीपीयू डाउन हो जाता है तो कोई रनिंग सॉफ्टवेयर नहीं होता है जो पिंग को रिप्लाई भेजता है।

वेक-ऑन-लैन यूनिडायरेक्शनल है

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

अपवाद

कुछ विशेष एनआईसी हैं जो स्वयं के द्वारा उत्तर भेज सकते हैं जैसे उदाहरण के लिए पूर्ण टीसीपी हैंडशेक ऑफलोड को लागू करने वाले ।


1
+1 - यह एकमात्र उत्तर है जो वास्तव में ओपी के प्रश्न को संबोधित करता है। "वेक-ऑन-लैन यूनिडायरेक्शनल है"।
सेलडा

5

ether-wakeआदेश तो निश्चित रूप से, मैक पते से काम करेंगे आप (एक) को IP पते और (ख) की जरूरत नहीं होगी नुकसान के बिना आदेश भेज सकते हैं (यदि वह पहले जाग है, जागने यह कोई प्रभाव नहीं पड़ेगा?)

आप अपने arp -anहोस्ट के लिए टारगेट होस्ट का IP प्राप्त करने के लिए अपने मैक का उपयोग करके और अपने मौजूदा arp कैश की सूची देख सकते हैं । हालाँकि, क्योंकि arp एक कैश है, यह कैश का "समय समाप्त" (और अभी भी 'जागृत') हो सकता है। फिर आपको आईपी खोजने के लिए एक ब्रूट फ़ोर्स विधि का उपयोग करना पड़ सकता है, जैसे:

 sudo nmap -sP 192.168.2.0/24 | less  

(और फिर 00: 0c: 0d: ef: 02: 03) की तलाश करें - फायरवॉल और इस तरह की अन्य चीजें उपलब्ध न कराएं!


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

2
स्लीपिंग मशीन पिंग का जवाब नहीं देगी। यदि मशीन चालू है और आप आईपी (और मेजबान का जवाब देते हैं) से पिंग करते हैं, तो यह आर्क कैश में एक प्रविष्टि डाल देगा। अगर वहां प्रविष्टि मेजबान के मैक पते से मेल खाती है, तो एक उचित मौका है कि यह काम करेगा (अन्य नेटवर्क फायरवॉल, राउटर और अन्य भौतिक मुद्दों ether-wakeको रोकते हुए जो इसे नहीं पहुंच सकता है)। मैं वास्तव में किसी अन्य होस्ट ऑनसाइट तक पहुंच पाऊंगा, सोने और प्रयास करने के लिए लक्ष्य मशीन लगाऊंगा ether-wake। WOL कैसे काम करता है इसकी प्रकृति के अनुसार, अनुरोध को होस्ट के रूप में एक ही सबनेट पर भेजा जाना होगा
द्रविण स्लटन

2
@DravSloan बोन एपल टाइम कैप्सूल पर उपलब्ध बोनजॉर प्रॉक्सी इस चिंताओं से निपटने का एक बहुत सरल तरीका है। मशीन सोती है लेकिन राउटर इसके लिए प्रतिक्रिया करता है, और केवल इसे तब उठाता है जब प्रॉक्सी इसे अब और नहीं संभाल सकता है।
थोरबजोरन रावन एंडरसन

पहले परीक्षण किए बिना WOL पर भरोसा न करें। बल्कि उस स्थिति में एक IPMI कार्ड प्राप्त करें।
13

0

मेरा आवेदन वर्कस्टेशन की डॉक्यूमेंट डायरेक्टरी पाने के लिए वर्कस्टेशन में एक सर्वर RSYNCing था ... लेकिन वर्कस्टेशन में एक गारंटीकृत आईपी एड्रेस नहीं था, लेकिन एक ज्ञात मैक एड्रेस था (आईपी एड्रेस डीएचसीपी द्वारा किया गया था)। यह कोड केवल पिंग का उपयोग करता है।

export COUNTER=1
while [ $COUNTER -lt 255 ]
do
    #ping $1$COUNTER -c 1 -w 400 | grep -B 1 "Lost = 0" &
    # activate all 254 addresses  in the subnet..  dont really need to grep the ping output
    ping 192.168.0.$COUNTER -c 1 -w 4 2> /dev/null | grep -B 1 ' 0\% packet loss' > /dev/null &
    COUNTER=$(( $COUNTER + 1 ))
done
# wait till 254 background processes finished
wait
# the arp cache will automatically flush it's incomplete entries in about 10 minutes...
#echo "finished"

#
#SRC_SERVER_IP="192.168.0.160:873"
SRC_SERVER_IP=$(arp -a | grep "00:22:4d:81:8f:76" | awk '{print $2}' | sed 's/[()]//g')":873"

if [ $SRC_SERVER_IP == ":873"   ] ; then
    echo  "ws1.example.com is not on the network...  exiting..."
    exit 0
fi

0

यहाँ मैक पते के माध्यम से पिंग करने के लिए एक सरल स्क्रिप्ट है। जैसे सेव और रन
macping aa:bb:cc:dd:ee:ff

आप परिणामी रूप से अन्य काम करने के लिए डेज़ी श्रृंखला का भी परिणाम कर सकते हैं, जैसे:

macping aa:bb:cc:dd:ee:ff && echo do something if online || echo do something if offline

-

#!/bin/bash
network=192.168.1.1/24

if [ "$#" -ne 1 ]; then echo Usage example: $0 aa:bb:cc:dd:ee:ff; exit 2; fi;

nmap -sP $network >& /dev/null
ip=$(arp -n | grep $1 | awk ' { print $1 }')
ping $ip -n -q -c 2 -i 0.2 -w 1 >& /dev/null
if [ $? -eq 0 ]; then
    echo Device is online \($ip\)
else
    echo Device is offline
    exit 1
fi;

0

यह रैपिंग के विभिन्न संस्करणों पर और न ही जटिल बैश लिपियों पर निर्भर नहीं करता है:

ping $(arp-scan --localnet | grep 80:1f:02:fa:90:b7  | awk ' { printf $1 } ')

मैंने arp के बजाय arp-scan का उपयोग किया है क्योंकि यह बहुत तेज़ चलने लगता है।

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