The solution is obvious: Map every domain to a canonical look alike If your domain maps to the same canonical look alike as an existing domain, you should not be allowed to register it. We have software for detecting look alikes, though it is in javascript, not C++.