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
0 B
|👍
/👎
0 B
|👍
/👎