Quiero poder verificar que dos direcciones IP estén dentro del rango. Entonces, si un usuario ingresa algo como 10.10.10.0 y 10.10.10.10 , pasará la validación e ingresará esa dirección en la base de datos. Luego, quiero verificar si un usuario ingresa algo como 10.9.10.10 que no sería válido y le pediría al usuario que corrija el error. Mi idea es que convertiría la dirección IP en long y luego me aseguraría de que endIpAddrToLong sea mayor que startIpAddrToLong
¿Es esta la lógica correcta para hacer algo así? ¿Puedo simplemente convertir las IP en largas y compararlas? El mensaje que mostraría al usuario sería que los rangos de direcciones IP no se pueden definir fuera del campo Dirección.
$('#button-validate').on('click', function() { let startIpAddr = $("#txtstartIpAddr").val(); var startIpAddrToLong = parseInt(IpAddressToLong(startIpAddr)); let endIpAddr = $("#txtendIpAddr").val(); var endIpAddrToLong = parseInt(IpAddressToLong(endIpAddr)); if (endIpAddrToLong > startIpAddrToLong) { console.log('success'); $("#validate").val("True"); } }); function IpAddressToLong(ip){ return ip.split('.').map((octet, index, array) => { return parseInt(octet) * Math.pow(256, (array.length - index - 1)); }).reduce((prev, curr) => { return prev + curr; });}
muestra de trabajo http://jsfiddle.net/tjmcdevitt/mdkx9h0w/31/
Algo como esto es lo que estoy tratando de hacer. 