Hola a to2,
aquí planteo mi duda para ver si alguien me puede echar un poco de luz al
tema.
Tengo una IP Origen del tipo 192.168.2.32 por ejemplo y un rango de IPs
inicial y final del tipo 192.168.002.001 y 192.168.002.041.
Lo que quiero es saber si la IP Origen está dentro o no del rango de IPs,
para lo cuál se me ocurren dos alternativas (estos datos debo cruzarlos entre
dos tablas dónde otro campo Fecha también tiene su importancia, pero que
ahora no voy a sacarlo a relucir).
Estas alternativas serían;
1) La IP Origen formatearla para dejarla como 192.168.002.032 y compararla,
pero ¿esto funcionaría correctamente?.
Por eso y para posiblemente solucionar esto, se me ocurre esto otro.
Ejecutando esta instrucción:
SELECT PARSENAME(IP, 4) +
PARSENAME(IP, 3) +
PARSENAME(IP, 2) +
PARSENAME(IP, 1) as IP
FROM TABLA
Obtendría una IP del tipo: 192168232, pero me gustaría obtenerla como
192168002032 para poder compararla posteriormente con las IPs 192168002001 y
192168002041. Así podría ver si se encuentra dentro del rango >= y <=.
2) Obtener el rango de inicio y fin; 192.168.002.001 y 192.168.002.041 y
crear las IPs intermedias (lista de IPs para hacer el IN en la tabla, lista
del tipo 192.168.002.001, 192.168.002.002, ..., 192.168.002.040 y
192.168.002.041
Bueno, como véis tengo estas alternativas, por lo que si alguien pudiera
darme luz al respecto y decirme qué o cómo podría hacerlo de una forma
adecuada, mucho mejor.
Muchas gracias.
Jorge Serrano Pérez
Microsoft MVP VB.NET
PortalVB.com
http://www.portalvb.com/
Weblog de Jorge Serrano
http://weblogs.golemproject.com/jorge/
Leer las respuestas