RumbleFrog icon

SP ParseCIDR

RumbleFrog | PRO | 08/13/17 08:08:54 PM UTC | 0 ⭐ | 7556 👁️ | Never ⏰ | []
Pawn |

550 B

|

None

|

0 👍

/

0 👎

stock void ParseCIDR(const char[] sCIDR, int &iStart, int &iEnd)
{
    char Pieces[2][32];
    
    ExplodeString(sCIDR, "/", Pieces, sizeof Pieces, sizeof Pieces[]);
    int baseip = NetAddr2Long(Pieces[0]);
    int prefix = StringToInt(Pieces[1]);
    
    if(prefix == 0) {
        LogError("CIDR prefix 0, clamping to 32. %s", sCIDR);
        prefix = 32;
    }
    
    int shift = 32 - prefix;
    int mask = (1 << shift) - 1;
    int start = baseip >> shift << shift;
    int end = start | mask;
    
    iStart = start;
    iEnd = end;
}

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎