IP Library Granted Patent US 11,201,850
Granted Patent B2
US 11,201,850 · App. 17/027,575 · Granted Dec 14, 2021

Domain name processing systems and methods

Inventors: Harold Nguyen (Burlingame, CA); Ali Mesdaq (San Jose, CA); Kevin Dedon (Austin, TX); Michael Fox (Lago Vista, TX); Gaurav Dalal (Fremont, CA)
Assignee: Proofpoint, Inc.
H04L61/2046G06F16/9535H04L61/1511H04L61/3025
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,201,850
App. No.
17/027,575
Granted
Dec 14, 2021
Kind
B2
Abstract

Disclosed is a domain filter capable of determining an n-gram distance between a seed domain and each of a plurality of candidate domains. The domain filter loads a seed domain n-gram for the seed domain and a candidate domain n-gram for each candidate domain in memory, compares the seed domain n-gram and the candidate domain n-gram to identify any identical grams, removes any identical grams from the seed domain n-gram, and determines how many grams are left in the seed domain n-gram, representing the n-gram distance between the seed domain and the candidate domain. The domain filter then compares n-gram distances thus determined with a predetermined threshold, eliminates any candidate domain having an n-gram distance from the seed domain that exceeds the predetermined threshold, and provides remaining candidate domains to a downstream computing facility such as a user interface or an analytical module operating in an enterprise computing environment.

Claims (59)

1. A method, comprising:

loading, by a domain filter executing on a processor, a seed domain n-gram for a seed domain and a candidate domain n-gram for a candidate domain in a computer memory;

comparing, by the domain filter, the seed domain n-gram and the candidate domain n-gram to identify any identical grams in the seed domain n-gram and the candidate domain n-gram;

removing, by the domain filter, any identical grams from the seed domain n-gram in the computer memory;

counting, by the domain filter, a number of grams left in the seed domain n-gram in the computer memory after the removing, the number representing an n-gram distance between the seed domain and the candidate domain;

comparing, by the domain filter, the n-gram distance determined by the domain filter with a predetermined threshold;

responsive to the n-gram distance not exceeding the predetermined threshold, adding or keeping, by the domain filter, the candidate domain in a set of candidate domains.

2. The method according to claim 1 , further comprising:

accessing a seed domain database;

retrieving the seed domain from the seed domain database; and

generating the seed domain n-gram for the seed domain.

3. The method according to claim 2 , wherein the seed domain comprises a universal resource locator (URL) and wherein the URL contains text, a number, or combination thereof.

4. The method according to claim 1 , further comprising:

accessing a candidate domain database;

retrieving the set of candidate domains from the candidate domain database; and

generating an n-gram for each of the set of candidate domains.

5. The method according to claim 4 , wherein retrieving the set of candidate domains from the candidate domain database comprises reading character strings stored in a block of rows from the candidate domain database.

6. The method according to claim 1 , wherein the candidate domain contains the seed domain.

7. The method according to claim 1 , wherein the candidate domain is a variation of the seed domain.

8. A system, comprising:

a processor;

a computer memory; and

stored instructions translatable by the processor for:

loading a seed domain n-gram for a seed domain and a candidate domain n-gram for a candidate domain in the computer memory;

comparing the seed domain n-gram and the candidate domain n-gram to identify any identical grams in the seed domain n-gram and the candidate domain n-gram;

removing any identical grams from the seed domain n-gram in the computer memory;

counting a number of grams left in the seed domain n-gram in the computer memory after the removing, the number representing an n-gram distance between the seed domain and the candidate domain;

comparing the n-gram distance determined by the domain filter with a predetermined threshold; and

responsive to the n-gram distance not exceeding the predetermined threshold, adding or keeping the candidate domain in a set of candidate domains.

9. The system of claim 8 , wherein the stored instructions are further translatable by the processor for:

accessing a seed domain database;

retrieving the seed domain from the seed domain database; and

generating the seed domain n-gram for the seed domain.

10. The system of claim 9 , wherein the seed domain comprises a universal resource locator (URL) and wherein the URL contains text, a number, or combination thereof.

11. The system of claim 8 , wherein the stored instructions are further translatable by the processor for:

accessing a candidate domain database;

retrieving the set of candidate domains from the candidate domain database; and

generating an n-gram for each of the set of candidate domains.

12. The system of claim 11 , wherein retrieving the set of candidate domains from the candidate domain database comprises reading character strings stored in a block of rows from the candidate domain database.

13. The system of claim 8 , wherein the candidate domain contains the seed domain.

14. The system of claim 8 , wherein the candidate domain is a variation of the seed domain.

15. A computer program product comprising a non-transitory computer-readable medium storing instructions translatable by a processor for:

loading a seed domain n-gram for a seed domain and a candidate domain n-gram for a candidate domain in a computer memory;

comparing the seed domain n-gram and the candidate domain n-gram to identify any identical grams in the seed domain n-gram and the candidate domain n-gram;

removing any identical grams from the seed domain n-gram in the computer memory;

counting a number of grams left in the seed domain n-gram in the computer memory after the removing, the number representing an n-gram distance between the seed domain and the candidate domain;

comparing the n-gram distance determined by the domain filter with a predetermined threshold; and

responsive to the n-gram distance not exceeding the predetermined threshold, adding or keeping the candidate domain in a set of candidate domains.

16. The computer program product of claim 15 , wherein the instructions are further translatable by the processor for:

accessing a seed domain database;

retrieving the seed domain from the seed domain database; and

generating the seed domain n-gram for the seed domain.

17. The computer program product of claim 16 , wherein the seed domain comprises a universal resource locator (URL) and wherein the URL contains text, a number, or combination thereof.

18. The computer program product of claim 15 , wherein the instructions are further translatable by the processor for:

accessing a candidate domain database;

retrieving the set of candidate domains from the candidate domain database; and

generating an n-gram for each of the set of candidate domains.

19. The computer program product of claim 18 , wherein retrieving the set of candidate domains from the candidate domain database comprises reading character strings stored in a block of rows from the candidate domain database.

20. The computer program product of claim 15 , wherein the candidate domain contains the seed domain, or is a variation of the seed domain.

Assignments (5)
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Dec 8, 2025
From: PROOFPOINT, INC.
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 073889/0677 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN INTELLECTUAL PROPERTY Recorded Mar 21, 2024
From: GOLDMAN SACHS BANK USA, AS AGENT
To: PROOFPOINT, INC.
Reel/Frame 066865/0648 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Aug 31, 2021
From: PROOFPOINT, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 057389/0615 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Aug 31, 2021
From: PROOFPOINT, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 057389/0642 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2020
From: NGUYEN, HAROLD; MESDAQ, ALI; DEDON, KEVIN; FOX, MICHAEL; DALAL, GAURAV
To: PROOFPOINT, INC.
Reel/Frame 054246/0711 →
Cited By (2)
US 12,335,306 US 12,568,116