OVH Cloud OVH Cloud

Connaître une adresse MAC d'une machine distante ?

17 réponses
Avatar
mloiseau
Bonjour,

Est-ce que quelqu'un connaîtrait un moyen simple et facile et pas trop
compliqué pour obtenir l'adresse MAC d'une machine distante d'après son
adresse IP ?

Merci
--
http://mloiseau.free.fr/blog/

7 réponses

1 2
Avatar
laurent.pertois
Nicolas MICHEL <Nicolas-MICHEL'_remove_'@bluewin.ch> wrote:

L'exercice est amusant, mais en même temps tu fait un head, un tail, un
awk et un sed pour récupérer l'ip que tu connais :)


Pour faire un one-line ? pour ne pas afficher trop de trucs ? (ça, je te
l'accorde ton script peut le faire aussi avec une redirection)

;-)

Mais effectivement, un petit :

ping -c 2 adresseDuServeur > /dev/null && arp adresseDuServeur

suffirait amplement

et comme on nous demandait l'adresse MAC, on va quand même fignoler :

ping -c 2 adresseDuServeur > /dev/null && arp adresseDuServeur | awk '{
print $4 }'

Mais bon, faut écrire deux fois l'adresse... Remarque, c'est plus court
;-)

Et hop, en script comme tu le proposais :

#!/bin/sh
ping -c 2 $1 > /dev/null
arp $1 | awk '{ print $4 }'


Boum...

--
Politically Correct Unix - UTILITIES
The "touch" command has been removed from the standard distribution due
to its inappropriate use by high-level managers.

Avatar
Nicolas-MICHEL'_remove_'
Laurent Pertois wrote:

Nicolas MICHEL <Nicolas-MICHEL'_remove_'@bluewin.ch> wrote:

L'exercice est amusant, mais en même temps tu fait un head, un tail, un
awk et un sed pour récupérer l'ip que tu connais :)


Pour faire un one-line ? pour ne pas afficher trop de trucs ? (ça, je te
l'accorde ton script peut le faire aussi avec une redirection)


note, sur le moment je me suis dit "tien, ça fait un bail que j'ai pas
joué avec sed". Du coup, j'ai passé 15 minutes à écrire ce truc à la con

arp `ping -c 2 $1 |sed -n '1s/(^[^(]*()([^)]*)(.*)/2/p'` |
awk '{print $4}'

Le truc bien illisible et inutile :)
Mais ça m'a rafraichis la mémoire, donc c'était très bien.
sed, c'est quand-même bien tordu comme outil.

Ceci dit, est-ce qu'il y a moyen de faire ça avec un alias bash ?


--
Nicolas - MICHEL at bluewin point ch
AIM : michelnicolas


Avatar
laurent.pertois
Nicolas MICHEL <Nicolas-MICHEL'_remove_'@bluewin.ch> wrote:

note, sur le moment je me suis dit "tien, ça fait un bail que j'ai pas
joué avec sed". Du coup, j'ai passé 15 minutes à écrire ce truc à la con

arp `ping -c 2 $1 |sed -n '1s/(^[^(]*()([^)]*)(.*)/2/p'` |
awk '{print $4}'

Le truc bien illisible et inutile :)


Joli, oui :-)

Mais ça m'a rafraichis la mémoire, donc c'était très bien.
sed, c'est quand-même bien tordu comme outil.


Bah, c'est toujours quand le besoin se présente qu'on avance ;-)

Ceci dit, est-ce qu'il y a moyen de faire ça avec un alias bash ?


Mmmm, alias, je ne sais pas, mais fonction, pour sûr :

macadress () {
arp `ping -c 2 $1 | sed -n '1s/(^[^(]*()([^)]*)(.*)/2/p'` |
awk ' {print $4} '
}

tu colles le tout dans ton ~/.profile (ou ailleurs, je ne sais jamais
quel fichier est le plus recommandé, du coup j'ai tout dans le
.profile), tu relances ton shell et hop, après :

macaddresse adresseDuServeur

et tu as la réponse

--
Politically Correct Unix - UTILITIES
The "touch" command has been removed from the standard distribution due
to its inappropriate use by high-level managers.

Avatar
loiseauthierry
Laurent Pertois wrote:

macadress () {
arp `ping -c 2 $1 | sed -n '1s/(^[^(]*()([^)]*)(.*)/2/p'` |
awk ' {print $4} '
}

tu colles le tout dans ton ~/.profile (ou ailleurs, je ne sais jamais
quel fichier est le plus recommandé, du coup j'ai tout dans le
.profile), tu relances ton shell et hop, après :

macaddresse adresseDuServeur


En ce cas, ce n'est pas plutôt :

macadress adresseDuServeur

:?/
--
* * __*__ *
* * * -----oOOo---°O°---oOOo------ * *
<http://astrophoto.free.fr> *
* * -------- oOOo oOOo -------- *

Avatar
laurent.pertois
Thierry Loiseau wrote:

Laurent Pertois wrote:

macadress () {
arp `ping -c 2 $1 | sed -n '1s/(^[^(]*()([^)]*)(.*)/2/p'` |
awk ' {print $4} '
}

tu colles le tout dans ton ~/.profile (ou ailleurs, je ne sais jamais
quel fichier est le plus recommandé, du coup j'ai tout dans le
.profile), tu relances ton shell et hop, après :

macaddresse adresseDuServeur


En ce cas, ce n'est pas plutôt :

macadress adresseDuServeur

:?/


Si, c'est parce que dans mon .profile j'ai décidé finalement de mettre
le "e" à la fin du nom de ma fonction ;-)

Donc, on reprend pour que ce soit clair et précis :

macadress () {
arp `ping -c 2 $1 | sed -n '1s/(^[^(]*()([^)]*)(.*)/2/p'` |
awk ' {print $4} '
}

dans le ~/.profile.

Ensuite, pour ne pas se tromper, taper maca et la touche tabulation, ça
complètera automatiquement.

Merci de ta sagacité.

--
Politically Correct Unix - UTILITIES
The "touch" command has been removed from the standard distribution due
to its inappropriate use by high-level managers.


Avatar
Nicolas-MICHEL'_remove_'
Laurent Pertois wrote:

Mmmm, alias, je ne sais pas, mais fonction, pour sûr :

macadress () {
arp `ping -c 2 $1 | sed -n '1s/(^[^(]*()([^)]*)(.*)/2/p'` |
awk ' {print $4} '
}

tu colles le tout dans ton ~/.profile


Boudiou !
Merci :)

--
Nicolas - MICHEL at bluewin point ch
AIM : michelnicolas

Avatar
laurent.pertois
Nicolas MICHEL <Nicolas-MICHEL'_remove_'@bluewin.ch> wrote:

Laurent Pertois wrote:

Mmmm, alias, je ne sais pas, mais fonction, pour sûr :

macadress () {
arp `ping -c 2 $1 | sed -n '1s/(^[^(]*()([^)]*)(.*)/2/p'` |
awk ' {print $4} '
}

tu colles le tout dans ton ~/.profile


Boudiou !
Merci :)


Bah, tu as allégé ma commande, je ne pouvais pas faire moins qu'alléger
son utilisation ;-)

--
Politically Correct Unix - UTILITIES
The "touch" command has been removed from the standard distribution due
to its inappropriate use by high-level managers.


1 2