Em um terminal, eu corri
$ nc -l -6 ::1 5000
Em outro terminal, corri
$ cat /proc/net/tcp6
e vi esta linha:
0: 00000000000000000000000001000000:1388 00000000000000000000000000000000:0000 ...
Por que isso diz que estou ouvindo ::1:0:0:0
e não ::1
?
Se você observar o código que gera o conteúdo desse arquivo , verá:
Com :
Os endereços IPv6 de 128 bits são uma matriz de 16 bytes, com o bit menos significativo do endereço sendo o bit menos significativo do 16º byte. Mas quando referenciado como u6_addr32, como uma matriz de 4 números de 32 bits em um sistema little-endian, o bit menos significativo se torna o 25º bit do 4º e último número. Os bytes desse inteiro de 32 bits 0x01000000 são realmente armazenados na memória como (hex) 0x00, 0x00 , 0x00, 0x01. Portanto, o endereço IPv6 é armazenado como 0x00 x 15, 0x01.