Kan man pinge et NIC med MAC

Jeg har et NIC-kort på en Debian-maskine et eller andet sted. Maskinen er slukket, men jeg har brug for at vide, om NIC-kortet er tændt, så jeg senere kan sende en wake-on-lan-magisk pakke (fra en anden Debian-maskine) for at vække den. Jeg har kortets MAC-adresse. Er der nogen måde, jeg kan pinge ethernet-kortet af MAC for at se, om det er tændt?

Jeg forsøgte at oprette en ARP-post:

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

Det fungerede ikke, da NIC-kortet ikke har denne ip-adresse. Så NIC-kortet modtog ping-anmodningen, men ville ikke svare på det. Er der nogen vej rundt dette?

I bruger etherwake-pakken til at sende en wake-on-lan-besked.

Svar

Du har måske bedre held ved hjælp af værktøjet arping i stedet. Værktøjet ping fungerer på lag 3-niveau i OSI-modellen , mens arping fungerer i lag 2.

Du skal dog stadig kende systemets IP, men med dette værktøj. Der er to versioner af det, den standard, der følger med de fleste Unixes (Alexey Kuznetsov “s) er den version, der kun kan håndtere IP-adresser. anden version (Thomas Habets “) kan angiveligt forespørge ved hjælp af MAC-adresser.

$ 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) 

arping fungerer på samme måde som ping undtagen i stedet for at sende ICMP-pakker, sender den ARP-pakker.

At få et system ” s IP ved hjælp af kun MAC

Her er et par metoder til at foretage den omvendte opslag af MAC til IP.

  1. nmap

    $ nmap -sP 192.168.1.0/24 

    Se derefter i din arp-cache efter den tilsvarende maskine arp -an.

  2. fping

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

    Se så i din arp-cache, som ovenfor.

  3. ping

    $ ping -b -c1 192.168.1.255 

    Se derefter i din arp-cache, som ovenfor.

  4. nbtscan (kun Windows er vært)

    $ 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 

Kommentarer

  • arping kan tage en MAC-adresse som parameter: arping -c 5 38:e7:d8:63:5e:a6
  • @MichaelMr ozek – Jeg gjorde det, efter at nogen dybest set havde sendt mit svar som en kommentar og ikke havde ‘ ikke læst, hvad jeg sagde om 2 versioner af arping. Det andet svar ser ud til at være blevet slettet, så tak for at tage mine dristige frustrationer ud.
  • Tak for hjælpen. Markerer dette som løst. Vi kunne ikke ‘ ikke finde en WOL-indstilling i BIOS-opsætningen. Dette er mit gæt: BIOS havde ikke WOL tændt, men NIC gjorde det. Så NIC vågnede op med den første WOL-pakke og sendte en besked til BIOS. Men da det ikke var tændt i BIOS, gjorde BIOS ikke noget. Fra dette øjeblik reagerede NIC på ping, da det var vågen, men maskinen ikke. Så hurtigt spørgsmål: Er det muligt for BIOS at have WOL slukket og NIC at have det tændt på samme tid?
  • @AlastorMoody – Jeg vil sige, at du ‘ har sandsynligvis tilladelse til at slå BIOS WOL fra med NIC ‘ s WOL slået til. Men hvis din BIOS ikke ‘ t understøtter WOL, så tror jeg ikke ‘ t tror du ‘ Jeg vil være i stand til at gøre brug af det, selvom NIC gør det. Se wikipedia-artiklen om WOL: da.wikipedia.org/wiki/Wake-on-LAN . Siger det samme som jeg i ” fejlfinding af magiske pakker ” sektion.
  • @niervol: arping til en MAC-adresse: Ja, der er to implementeringer af arping 1. fra Linux iputils 2. arping af Thomas Habets . — Kun implementeringen af 2. kan pinge en MAC-adresse, men sådan en ping er meget vanskelig: Den pingede maskine skal stadig have konfigureret TCP / IP (mindst en IP-adresse), og den skal være i stand til at svare på et ping til en udsendt IP-adresse.

Svar

Du kan ikke pinge et normalt NIC, fordi NIC alene ikke sender nogen svar.

Kun en kørende computer kan sende svar

Normale netværksinterfacekort sender ikke svar alene. De har altid brug for en kørende software på computeren for at gøre det.

Når computerens CPU er slukket, er der ingen kørende software, der kan sende et svar til et ping.

Wake-on-LAN er ensrettet

Wake-on-LAN tillader computeren at lade netværkskortet delvist tændes for at modtage Ethernet rammer og se efter den magiske vækningssekvens i dem, men NIC sender stadig ikke noget svar. Wake-on-LAN er strengt ensrettet. Der er ingen svar sendt.

Undtagelser

Der er visse specielle NICer, der kan sende svar alene som f.eks. dem, der implementerer en komplet TCP-håndtryksaflastning .

Kommentarer

  • +1 – dette er det eneste svar, der virkelig adresserer OP ‘ s spørgsmål. ” Wake-on-LAN er ensrettet “.

Svar

ether-wake kommandoen fungerer efter mac-adresse, så helt sikkert behøver du (a) ikke en IP-adresse og (b) kan sende kommandoen uden skade (hvis den allerede er vågen, har den ingen indflydelse at vække?)

Du kan se listen over din eksisterende arp-cache ved at bruge arp -an og grepping for din MAC for at få IP-adressen til målværten. Men fordi arp er en cache, er den muligvis blevet “udløbet” af cachen (og stadig være “vågen”). Du bliver muligvis nødt til at bruge en brute force-metode til at finde IPens, såsom:

 sudo nmap -sP 192.168.2.0/24 | less 

(og derefter kigge efter 00: 0c: 0d: ef: 02: 03) – forudsat at firewalls og andre sådanne ting ikke kommer i vejen!

Kommentarer

  • Jeg don ‘ t ønsker at vække maskinen lige nu. Men jeg vil sikre, at netværkskortet kan modtage mine meddelelser, så når jeg går uden for stedet og tænder maskinen via en WOL-pakke, ved jeg, at den tænder. Det er ‘, hvorfor jeg vil pinge med IP eller MAC og ikke vække det.
  • Sovemaskiner reagerer ikke på ping. Hvis maskinen er tændt, og du pinger med IP (og værten svarer), placerer den en post i arp-cachen. Hvis posten derinde matcher MAC-adressen på værten, er der en rimelig chance for, at den fungerer (spærring af andre netværksfirewalls, routere og andre fysiske problemer, der kan få ether-wake til ikke nå det). Jeg ville faktisk få adgang til en anden vært på stedet, sætte målmaskinen i dvale og forsøge ether-wake. Af karakteren af hvordan WOL fungerer, skal anmodningen alligevel sendes på det samme undernet som værten
  • @DravSloan Bonjour Proxy tilgængelig på f.eks. Apples Time Capsule er en ret genial måde at håndtere dette problem på. Maskinen sover, men routeren reagerer på det og vækker det kun, når proxyen ‘ ikke kan håndtere det længere.
  • Don ‘ ikke stole på WOL uden at have testet den først. I stedet får du et IPMI-kort.

Svar

Min ansøgning var en server, der RSYNCede ind i en arbejdsstation til få arbejdsstationens dokumentmappe … men arbejdsstationen havde ikke en garanteret IP-adresse, men havde en kendt MAC-adresse (IP-adresse blev udført af DHCP). Denne kode bruger KUN ping.

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 

Svar

Her er et simpelt script til ping via mac-adresse. Gem bare og kør f.eks.
macping aa:bb:cc:dd:ee:ff

Du kan også kæde resultatet for at gøre andre ting betinget, fx:

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; 

Svar

Dette er ikke afhængig af forskellige versioner af arping eller på komplekse bash-scripts:

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

Jeg har brugt arp-scan i stedet for arp, da det ser ud til at køre meget hurtigere.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *