[Précédent (date)] [Suivant (date)] [Précédent (sujet)] [Suivant (sujet)] [Index par date] [Index par sujet]
Re: Adresse IP d'un client telnet...
- To:
- Subject: Re: Adresse IP d'un client telnet...
- From: Emmanuel Rousselle <>
- Date: Mon, 13 Mar 2000 19:08:27 -0500
-
In-reply-to: <[email protected]>
Minou wrote:
> Non, malhereusement, la variable $REMOTEHOST n'existe pas. Je suis sous RedHat6.1...
> Je suis persuadé qu'il existe un moyen simple d'obtenir cette adresse IP, car j'ai
> deja fait une commande dans .bashrc d'un user pour faire un log de son IP a chaque
> fois qu'il se loggait. C'était tres simple, mais la maniere m'échappe. Ca
> ressemblait a de quoi comme whoami avec des parametres. Ca donnait en sortie
> l'adresse IP (ou le DNS quand il le trouvait), la date et l'heure.
Une petite remarque en commençant : tu devrais poser ce type de questions dans le groupe
de discussion "aide" ou qc.comp.linux.aide.
Une des options est effectivement d'utiliser "who". Le seul problème c'est que who va --
dans la majorité des versions -- résoudre l'adresse IP en un hostname.
Si tu veux aller chercher l'adresse IP à tout coup, ça demande un peu de programmation.
L'idée de base est de modifier who.c pour qu'il ne te retourne que l'adresse IP, quand
c'est approprié.
Grosso modo, il faudrait modifier le code source de who ainsi :
- initializer la variable my_line_only (sémaphore pour l'option whoami) à 1 au lieu de 0
par défaut; ça va forcer who à ne s'occuper que du terminal courant
- mettre la ligne "printf ("%s!", hostname);" en commentaire (fait partie de la fonction
who_am_i() )
- remplacer le corps de la fonction print_entry() par du nouveau code après l'appel à la
fonction stat(); si ta version de Linux est récente, le code de remplacement sera :
printf("%d.%d.%d.%d\n", utmp_ent->ut_addr_v6[0], utmp_ent->ut_addr_v6[1],
utmp_ent->ut_addr_v6[2], utmp_ent->ut_addr_v6[3])
sinon ce sera :
printf("%s\n", inet_ntoa(utmp_ent->ut_line));
Ça peut paraitre un peu ardu, mais ça n'est pas trop difficile (je l'ai fait pour
véridier ma théorie).
Si tu veux plus de détails je peux t'en fournir.