Sure, there are lots of things wrong with it.
> void main()
This is a non-standard header file, so you should avoid using unless necessary.
It is also obsolete as well, as no new compiler will ever have such a thing. Even compilers like dev-c++ which do include it do only for backward compatibility.
> union ipadd
A union with only one member is kinda pointless, so it looks just like a struct.
You know, this is exactly what strtol() does, so why not use it?
In fact using strtol() means you can avoid the messy strtok() function as well, which as a side-effect trashes the input string.