Wyrażenie regularne dla sprawdzania poprawności adresu IP

chcę sprawdzić poprawność wartości jest prawidłowym adresem IP lub nie ..!

Służyłem do sprawdzania poprawności

ValidIpAddressRegex = "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$";

działa dobrze, ale kiedy podaję takie wartości12345678 , jego także powrócićprawdziwe.. Jak to rozwiązać?