rendered paste bodyvoid G_admin_parse_ip( int *ipnum, int *net, char *ip ){ char tempIp[18]; char *tptr; char newIp[18] = "255.255.255.255/32"; 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); } } } } } } if ( (int1>=0 && int1<=255) && (int2>=0 && int2<=255) && (int2>=0 && int2<=255) && (int2>=0 && int2<=255) ) { *ipnum = (int) (int1<<24) + (int2<<16) + (int3<<8) + (int4); } else { *ipnum = (int) 0; } if ( *net > 32 || *net < 0 ) { *net = (int) 32; } if (!(*net == 32)) { Com_sprintf( newIp, sizeof(newIp), "%d.%d.%d.%d/%d", int1, int2, int3, int4, *net ); } else { Com_sprintf( newIp, sizeof(newIp), "%d.%d.%d.%d", int1, int2, int3, int4 ); } ip = newIp; return;}