Möchtest du prüfen, ob der String prinzipiell eine gültige Adresse enthält oder ob die
IP existiert?
Für die Existenz sollte getnameinfo helfen, diese ist ab Windows XP verfügbar:
http://msdn.microsoft.com/en-us/library/ms738532.aspx
Ab Vista kannst du auch einen solchen String in die Binärdarstellung umwandeln versuchen mit RtlIpv6StringToAddress:
http://msdn.microsoft.com/en-us/library/aa814462.aspx
Je nachdem ob nur Vista und Windows 7 oder auch XP unterstützt werden sollen, musst du schauen was du benutzt. Für XP gibt es wohl keine direkte Umwandlungsfunktion.
Grundsätzlich ist das zwar nicht ganz so einfach wie bei IPv4, aber so schwer ist die manuelle Prüfung auch nicht, dann wärst du nicht vom benutzten System abhängig.