void G_admin_parse_ip( int *ipnum, int *net, char *ip ) { char tempIp[21]; char *tptr; char newIp[21]; int int1; int int2; int int3; int int4; Q_strncpyz( tempIp, ip, sizeof( tempIp ) ); if (strlen(tempIp) == 0) // blank ip, don't ban anyone. { int1 = int2 = int3 = int4 = (int) 0; *net = (int) 32; } else { tptr = strtok(tempIp, "."); if (tptr == NULL) { int1 = int2 = int3 = int4 = (int) 0; *net = (int) 32; } else { int1 = atoi(tptr); tptr = strtok(NULL, "."); if (tptr == NULL) { int2 = int3 = int4 = (int) 0; *net = (int) 8; } else { int2 = atoi(tptr); tptr = strtok(NULL, "."); if (tptr == NULL) { int3 = int4 = (int) 0; *net = (int) 16; } else { int3 = atoi(tptr); tptr = strtok(NULL, "/"); if (tptr == NULL) { int4 = (int) 0; *net = (int) 24; } else { int4 = atoi(tptr); tptr = strtok(NULL, "/"); if (tptr == NULL) { *net = (int) 32; } else { *net = atoi(tptr); } } } } } } *ipnum = (int) (int1<<24) + (int2<<16) + (int3<<8) + (int4); if (!(*net == 32)) { Com_sprintf( newIp, sizeof(*newIp)+10, "%i.%i.%i.%i/%i", int1, int2, int3, int4, *net ); } else { Com_sprintf( newIp, sizeof(*newIp)+10, "%i.%i.%i.%i", int1, int2, int3, int4 ); } ip = newIp; return; }