JSFiddle - React, Tailwind, and code Playground

by salitrapraveen

JavaScript

$(function() {

    var valIP = function(ip) {
        var ipRegex = '^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})$',
            oREGEXP = new RegExp(ipRegex, '');
        return oREGEXP.test(ip);

    };
    var validateIP = function(ip) {
        var ipStrs = ip.split('.'),
            ipParts = [];

        if (ipStrs.length !== 4) {
            return false;
        }

        for (var i = 0; i < 4; i++) {
            ipParts.push(Number(ipStrs[i]));
        }

        if (ipParts[0] === 127) {
            //loopback address
            return false;
        }

        if (ipParts[0] < 1 || ipParts[0] > 223) {
            //not A, B, C address
            return false;
        }

        for (var i = 1; i < 4; i++) {
            //remaining parts
            if (ipParts[i] < 0 || ipParts[0] > 255) {
                return false;
            }
        }

        return true;
    };

    var compareIP = function(ip1, ip2) {
        var s1 = formatIP(ip1).split('.'),
        s2 = formatIP(ip2).split('.'),
        count = 0;
    
        for (var i = 0; i < 4; i++) {
            if (Number(s1[i]) < Number(s2[i])) {
                return -1;
            }
            if (Number(s1[i]) > Number(s2[i])) {
                return 1;
            }
            else {
                count++;
            }
        }
    
        if (count === 4) {
            return 0;
        }
    };

    
    var formatIP = function(ip){
        var ipn = ip.split('.');
        return ([(Number(ipn[0])), (Number(ipn[1])), (Number(ipn[2]) ), (Number(ipn[3]))].join('.'));
    };
    
    
    alert(validateIP(formatIP('   192.  000168.00.  00001')));
    //alert(compareIP('192.168.02.001', '192.168.000.01'));




});