Minulla on verkkokortti Debian-koneessa jossain. Kone on kytketty pois päältä, mutta minun on tiedettävä, onko NIC-kortti kytketty päälle, jotta voin lähettää herätyskellon myöhemmin (toisesta Debianin koneesta) sen herättämiseksi. Minulla on kortin MAC-osoite. Voinko mitenkään pingata ethernet-korttia MAC: n avulla nähdäksesi onko se päällä?
Yritin luoda ARP-merkinnän:
arp -s 192.168.2.2 00-0c-0d-ef-02-03 ping 192.168.2.2
Se ei toiminut, koska NIC-kortilla ei ole tätä IP-osoitetta. Joten NIC-kortti saisi ping-pyynnön, mutta ei vastaisi siihen. Onko tällä tavalla mitään keinoa?
I lähetän etherwake-paketin avulla herätys-lan-viestin.
Vastaa
Saatat olla parempi onni työkalun käytössä Sen sijaan arping
. Työkalu ping
toimii OSI-mallin tason 3 tasolla , kun taas arping
toimii kerroksessa 2.
Sinun on silti tiedettävä järjestelmän IP-osoite tällä työkalulla. se, useimpien Unixien (Alexey Kuznetsovin) mukana toimitettu vakioversio on versio, joka pystyy käsittelemään vain IP-osoitteita. toinen versio (Thomas Habets ”) voi oletettavasti tehdä kyselyn MAC-osoitteiden avulla.
$ 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
toimii samalla tavalla kuin ping
, paitsi että ICMP-pakettien lähettämisen sijaan se lähettää ARP-paketteja.
Järjestelmän saaminen ” s IP vain MAC: llä
Tässä on muutama menetelmä MAC: n käänteisen haun tekemiseen IP: ksi.
-
nmap
$ nmap -sP 192.168.1.0/24
Etsi sitten arp-välimuistista vastaava kone
arp -an
. -
fping
$ fping -a -g 192.168.1.0/24 -c 1
Etsi sitten arp-välimuistisi, sama kuin yllä.
-
ping
$ ping -b -c1 192.168.1.255
Etsi sitten arp-välimuistisi, sama kuin yllä.
-
nbtscan (vain Windowsin isännät)
$ 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
Kommentit
Vastaa
Et voi pingata normaalia verkkokorttia, koska pelkkä verkkokortti ei lähetä vastauksia.
Vain käynnissä oleva tietokone voi lähettää vastauksia
Normaalit verkkokortit eivät lähetä itse vastauksia. He tarvitsevat aina tietokoneessa käynnissä olevan ohjelmiston.
Kun tietokoneen keskusyksikkö sammutetaan, ei ole käynnissä olevaa ohjelmistoa, joka lähettäisi vastauksen pingiin.
Wake-on-LAN on yksisuuntainen
Wake-on-LAN antaa tietokoneen antaa vain verkkokortin olla osittain päällä vastaanottamaan Ethernet-kehykset ja etsi niistä maaginen herätysjakso, mutta verkkokortti ei vieläkään lähetä vastausta. Wake-on-LAN on ehdottomasti yksisuuntainen. Ei vastauksia lähetetty.
Poikkeukset
On joitain erityisiä verkkokortteja, jotka voisivat lähettää vastauksia itse, kuten esimerkiksi toteuttamalla täydellinen TCP-kättelylataus .
kommentit
- +1 – tämä on ainoa vastaus, joka todella koskee OP ’ s kysymys. ” Wake-on-LAN on yksisuuntainen ”.
Vastaa
ether-wake
-komento toimii mac-osoitteen mukaan, joten varmasti (a) et tarvitse IP-osoitetta ja (b) voi lähettää komennon vahingoittamatta (jos se on jo hereillä, sen herättämisellä ei ole vaikutusta?)
Näet nykyisen arp-välimuistisi luettelon käyttämällä arp -an
ja hakeutuu MAC-tietokoneellesi saadaksesi kohde-isännän IP-osoitteen. Koska arp on välimuisti, se on ehkä ”ajoitettu” välimuistista (ja silti ”hereillä”). Sitten sinun on ehkä käytettävä raakaa voimamenetelmää sen IP: n löytämiseksi, kuten:
sudo nmap -sP 192.168.2.0/24 | less
(ja etsi sitten 00: 0c: 0d: ef: 02: 03) – edellyttäen, että palomuurit ja muut sellaiset asiat eivät esty!
Kommentit
- En ’ et halua herättää konetta juuri nyt. Mutta haluan varmistaa, että verkkokortti voi vastaanottaa viestejäni niin, että kun menen ulkopuolelle ja käynnistän koneen WOL-paketin kautta, tiedän, että se käynnistyy. Siksi ’ syy, miksi haluan pingata IP: n tai MAC: n kautta enkä herätä sitä.
- Nukkuvat koneet eivät vastaa pingiin. Jos koneeseen kytketään virta ja pingit IP-osoitteen (ja isäntäkoneen vastausten mukaan) avulla, se lisää merkinnän arp-välimuistiin. Jos siellä oleva merkintä vastaa isännän MAC-osoitetta, on kohtuullinen mahdollisuus, että se toimii (muiden verkon palomuurien, reitittimien ja muiden fyysisten ongelmien estäminen, jotka saattavat aiheuttaa
ether-wake
: n saavuta se). Sain itse pääsyn toiseen isäntään paikan päällä, laitoin kohdekoneen nukkumaan ja yritinether-wake
. WOL: n toiminnan luonteen vuoksi pyyntö on kuitenkin lähetettävä samaan aliverkkoon kuin isäntä - @DravSloan Bonjour Proxy, joka on saatavana esim. Omenoiden aikakapseli on melko nerokas tapa käsitellä tätä ongelmaa. Kone nukkuu, mutta reititin vastaa siihen ja herättää sen vasta, kun välityspalvelin ei voi enää ’ käsitellä sitä.
- Älä ’ älä luota WOL: iin ilman, että sitä testataan ensin. Hanki pikemminkin IPMI-kortti siinä tapauksessa.
Vastaa
Sovellukseni oli palvelin, joka synkronoi työaseman hae työaseman asiakirjahakemisto … mutta työasemalla ei ollut taattua IP-osoitetta, mutta sillä oli tunnettu MAC-osoite (IP-osoitteen teki DHCP). Tämä koodi käyttää VAIN pingiä.
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
Vastaa
Tässä on yksinkertainen komentosarja, jonka avulla voit pingata mac-osoitteen kautta. Tallenna ja suorita esim.
macping aa:bb:cc:dd:ee:ff
Voit myös ketjuttaa tuloksen ehdollisesti tekemään muita asioita, esimerkiksi:
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;
Vastaa
Tämä ei perustu erilaisiin versiot arpingista eikä monimutkaisista bash-skripteistä:
ping $(arp-scan --localnet | grep 80:1f:02:fa:90:b7 | awk " { printf $1 } ")
Olen käyttänyt arp-skannausta arp: n sijaan, koska se näyttää toimivan paljon nopeammin.
arping
voi ottaa MAC-osoitteen parametriksi:arping -c 5 38:e7:d8:63:5e:a6
arping
MAC-osoitteeseen: Kyllä, on kaksi toteutusta 1. Linuxista iputils 2. kirjoittanut Thomas Habets . — Vain 2. -toteutus voi pingata MAC-osoitetta, mutta tällainen ping on erittäin hankalaa: Pingitetyllä koneella on silti oltava määritetty TCP / IP (vähintään IP-osoite) ja sen on oltava pystyy vastaamaan lähetetyn IP-osoitteen pingiin.