he pensado el problema creo q va a ser mejor q arroje las direcciones en hexagesimal y primero conprovar q cumnplen con el formato minimo, luego las contraste con un vector de direcciones erroneas las cuales cumplan con el formato pero esten erroneas por la razon q le de la gana.
para verificar q bote un mumero creo q basta con hacer
ip[i] XOR 0x030
, donde ip es un arreglo ascii donde va contenida la direccion, recuerde q los numero en ascii van del 030 al 039 desde el 0 hasta el nueve respectivamente asi que el resultado de esta operacion va a ser el numero entero que corresponda y si es mayor q 9 entonces ya direccion errada.
Lo del vector de direcciones erroneas lo define usted y pues va comparando la direccion con las direcciones erroneas q haya definido.
Si admito q es mamon de hecho quise hacer ese codigo pero me dio una mamera increible, lo entiendo.