Generate dnstwist-style typosquats of a domain and check which ones resolve in DNS.
Homoglyph Checker
Use Homoglyph Checker
What it does
Paste a domain, URL or text to see each label in Unicode and punycode, the script and UTS #39 prototype of every character, and whether the name mixes scripts or reads as a different ASCII name.
It runs entirely in your browser: nothing you enter is uploaded.
Example
Cyrillic lookalike in punycode
xn--80ak6aa92e.exampleLookalike risk: Label "аррӏе" is written in Cyrillic but reads as the ASCII name "apple" (whole-script confusable).
Highlighted domain
аррӏе.example
Unicode form
аррӏе[.]example
Punycode (ACE) form
xn--80ak6aa92e[.]example
RESTRICTION LEVEL
Single Script
SCRIPTS
Cyrillic, Latin
READS AS
apple[.]example
Labels
UNICODE ACE SCRIPTS MIXED RESTRICTION LEVEL SKELETON
аррӏе xn--80ak6aa92e Cyrillic no Single Script apple
example example Latin no ASCII-Only ASCII only
Characters
CHAR CODE POINT SCRIPT UTS #39 PROTOTYPE ID STATUS FLAG
а U+0430 Cyrillic a (U+0061) Allowed looks like ASCII
р U+0440 Cyrillic p (U+0070) Allowed looks like ASCII
р U+0440 Cyrillic p (U+0070) Allowed looks like ASCII
ӏ U+04CF Cyrillic l (U+006C) Allowed looks like ASCII
е U+0435 Cyrillic e (U+0065) Allowed looks like ASCII
e U+0065 Latin itself Allowed ASCII
x U+0078 Latin itself Allowed ASCII
a U+0061 Latin itself Allowed ASCII
m U+006D Latin rn (U+0072 U+006E) Allowed ASCII
p U+0070 Latin itself Allowed ASCII
l U+006C Latin itself Allowed ASCII
e U+0065 Latin itself Allowed ASCII
Comparison with apple[.]example
Confusable: аррӏе[.]example and apple[.]example have the same UTS #39 skeleton, so they can look identical.
SKELETON OF THE INPUT
apple[.]exarnple
SKELETON OF APPLE[.]EXAMPLE
apple[.]exarnpleDecodes to аррӏе.example: all five letters are Cyrillic and read as apple, so the label is flagged as a whole-script confusable and each character is marked. Load example also puts apple.example in the comparison field, which has the same skeleton.
FAQ
What does the checker test?
Each label is decoded from punycode with an RFC 3492 decoder, every character gets its Unicode script and its UTS #39 prototype from confusables.txt (Unicode 18.0), and the label gets a mixed-script check and a UTS #39 restriction level. Labels whose letters all read as ASCII are flagged as whole-script confusables.
Can it miss a lookalike or flag a real domain?
Yes. UTS #39 covers characters that look alike, not typos, so a swapped or missing letter only shows up through the edit distance in the comparison field, and ASCII tricks such as rn for m are listed as notes. Legitimate non-Latin names, for example some Cyrillic domains under .рф, can read as Latin words and be flagged.
Is anything sent over the network?
No. Decoding, script detection and the confusables table run on this page; the punycode form comes from your browser's own URL parser and no DNS lookup is made.