[gull] IPV6 & IPV4

Erik Rossen rossen at linux-gull.ch
Fri Nov 13 10:17:41 CET 2009


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
rossen at rossen.ch                          On fonce la tête dans
http://www.rtfm-sarl.ch                   le guidon et on RTFM.


More information about the gull mailing list