On Thu, Nov 12, 2009 at 05:53:44PM +0100, Daniel Cordey wrote:
> Bonjours a tous,
> 
> Je viens de decouvrir qu'il est devenu difficile d'obtenir l'adresse IPV4 
> d'un 
> interface a l'aide de ce qui est disponible dans /proc/net... y'a plus que 
> if_inet6. Bon, jusque la, pas de probleme... sauf qu'une adresse EUI-64 ne me 
> sert pas a grand chose pour extraire l'adresse IPV4... Je tourne un peu en 
> rond... Quelqu'un a-t-il deja mis les doigts dans cette colle la ?

Je crois que j'ai trouvé: regarde le colonne "Source" de /proc/net/rt_cache.

Ce qui'il faut comprendre c'est que les adresses sont codés en hexadecimal et
qu'il sont inversés.  De l'encadre de
http://linuxdevcenter.com/pub/a/linux/2000/11/16/LinuxAdmin.html?page=2:

        IP addresses in /proc/net/

        In the files offered by the /proc/net/ directory, IP addresses are often
        represented as little-endian four-byte hexadecimal numbers. These are 
easy to
        convert into the more usual dotted-decimal notation.

        For example, to convert the remote address and port of line 16 of the
        /proc/net/tcp output shown in this column, we'd do the following:

        • Take the rem_address field: 0100007F:0017

        • Reverse the ordering of the bytes in the IP address part: 
7F000001:0017

        • Let's separate the bytes of the address for readability: 7F 00 00 01 
: 0017

        • Perform a simple hexadecimal-to-decimal conversion on each: 127 0 0 1 
: 23

        It's a telnet connection to localhost. Simple enough.

-- 
Erik Rossen                               OpenPGP key: 2935D0B9
[email protected]                          On fonce la tête dans
http://www.rtfm-sarl.ch                   le guidon et on RTFM.
_______________________________________________
gull mailing list
[email protected]
http://forum.linux-gull.ch/mailman/listinfo/gull

Répondre à