none
Convertir IPv6 a número "entero" y viceversa RRS feed

  • Pregunta

  • Buenos días, estoy buscando una función (preferiblemente en Transact SQL) que me permita convertir una dirección IPv6 en un número "entero" para poder verificar si se encuentra dentro de un rango, y por ende otra que convierta el número "entero" en la correspondiente IPv6.


    Agradeciendo de antemano la atención, quedo atento.

    miércoles, 14 de mayo de 2014 13:57

Todas las respuestas

  • miércoles, 14 de mayo de 2014 14:23
  • Veo importante el tema de que hayas escrito "entero" entre comillas. La cuestión es que las direcciones IPv6 tienen 128 bits, por lo que no caben dentro de ninguno de los valores enteros que vienen de fábrica con .Net (el más largo es el long, que tiene 64 bits). Una solución sería guardar la dirección dentro de un array de bytes, que dentro tendrá los 16 bytes que componen la direción. Si esto te vale, puedes hacer fácilmente la conversión mediante el método GetAddressBytes de la clase System.Net.IPAddress:

    IPAddress addr = IPAddress.Parse("fe80::bd3b:94e7:ba43:7dac%8");
    Byte[] bytes = addr.GetAddressBytes();
    

    miércoles, 14 de mayo de 2014 14:27