IP Library Granted Patent US 6,871,226
Granted Patent B1
US 6,871,226 · App. 09/643,235 · Granted Mar 22, 2005

Method of searching servers in a distributed network

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 6,871,226
App. No.
09/643,235
Granted
Mar 22, 2005
Kind
B1
Abstract

The present invention relates to methods of searching and querying computers and websites connected to a distributed network such as the Internet. When the computers and websites are uniquely identified by an IP address or similar identifier, the processes of the present invention systematically proceed through a given range of addresses to be queried in a top-to-bottom manner. The process preferably comprises four stages: the Initial Process, the Second Pass, the Ping Process, and the Ping Follow-Up. Essentially, the Initial Process establishes a preliminary listing of computers that respond to requests transmitted over the network. The Second Pass attempts to establish a connection to computers with which a connection could not be established during the Initial Process. The Ping Process uses ping commands to verify the operability of non-responsive computers; and the Ping Follow-Up makes one final attempt to transmit requests to computers that have responded to ping commands. Output files may be generated, based upon responses to the requests, that may be used in subsequent processes such as filtering Internet websites for content.

Claims (87)

1. A method of querying computers connected to a distributed network, said method comprising the steps of:

providing a range of Internet Protocol (“IP”) addresses to be queried, said range being defined by a beginning address and an ending address;

selecting an IP address to be queried from the range of Internet Protocol (“IP”) addresses, the selected IP address including a primary number, a secondary number, a third number, and a fourth number;

transmitting a request to the selected IP address;

creating a response record associated with the selected IP address in a response output file, said response record comprising the selected IP address;

incrementing the address to be queried according to a predefined order, the predefined order including:

(a) incrementing the secondary number without changing the primary number, third number, and fourth number until the entire range of secondary numbers has been queried;

(b) incrementing the third number by one;

(c) incrementing the secondary number without changing the primary number, third number, and fourth number until the entire range of secondary numbers has been queried;

(d) repeating steps (b) and (c) until the entire range of secondary numbers and third numbers has been queried;

(e) incrementing the fourth number by one;

(f) incrementing the secondary number without changing the primary number, third number, and fourth number until the entire range of secondary numbers has been queried;

(g) incrementing the third number by one;

(h) incrementing the secondary number without changing the primary number, third number, and fourth number until the entire range of secondary numbers has been queried; and

(i) repeating steps (e) through (h) until the entire range of secondary numbers, third numbers, and fourth numbers has been queried;

repeating said steps of transmitting a request, creating a response record, and incrementing the address until every address in the range of addresses has been queried; and

initiating a process that examines content at least a first address from which a reply is received.

2. The method of claim 1 , wherein the distributed network is the Internet.

3. The method of claim 1 , wherein said step of providing a range of addresses to be queried comprises inputting a beginning address only and wherein the ending address is automatically chosen.

4. The method of claim 1 , wherein the selected address is the beginning address.

5. The method of claim 1 , wherein said request is one of a Hypertext Transfer Protocol (“HTTP”) request, a Hypertext Transfer Protocol Secure (“HTTPS”) request, a File Transfer Protocol (“FTP”) request, a Simple Mail Transfer Protocol (“SMTP”) request, a Network News Transfer Protocol (“NNTP”) request, a User Datagram Protocol (“UDP”) request, and an Internet Chat Relay (“IRC”) request.

6. The method of claim 1 , wherein said step of creating a response record comprises:

creating a positive response record associated with the selected address in a positive response output file if a reply is received from the selected address in response to the request, said positive response record comprising the selected address; and

creating a negative response record associated with the selected address in a negative response output file if no reply is received from the selected address in response to the request, said negative response record comprising the selected address.

7. The method of claim 6 , wherein the positive response output file is a table in a database.

8. The method of claim 6 , wherein the negative response output file is a table in a database.

9. The method of claim 6 , wherein the positive response output file and the negative response output file each comprise tables in a single database.

10. The method of clam 6 , wherein the positive response output file is in a format selected from the group consisting of a text file, a Hypertext Markup Language file, a comma separated values file, a database file, a spreadsheet file, and a pdf file.

11. The method of clam 6 , wherein the negative response output file is in a format selected from the group consisting of a text file, a Hypertext Markup Language file, a comma separated values file, a database file, a spreadsheet file, and a pdf file.

12. The method of claim 6 , further comprising the steps of:

selecting a second address from the negative response output file;

transmitting a second request to the selected second address;

creating a positive response record associated with the selected second address in the positive response output file if a reply is received from the selected second address in response to the second request, said positive response record comprising the selected second address;

removing the negative response record associated with the selected second address from the negative response output file if a reply is received from the selected second address in response to the second request;

incrementing the address to be queried; and

repeating said steps of selecting a second address, transmitting a second request, creating a positive response record, removing the negative response record, and incrementing the address until every address in the negative response output file has been queried.

13. The method of claim 6 , further comprising the steps of:

selecting a third address from the negative response output file;

transmitting a ping command to the selected third address;

creating a pinged record associated with the selected third address in a pinged output file if a reply is received from the selected third address in response to the ping command, said pinged record comprising the selected third address;

incrementing the address to be searched; and

repeating said steps of selecting a third address, transmitting a ping command, creating a pinged record, and incrementing the address until every address in the negative response output file has been queried.

14. The method of claim 13 , further comprising the steps of:

selecting a fourth address from the pinged output file;

transmitting a fourth request to the selected fourth address;

creating a positive response record associated with the selected fourth address in the positive response output file if a reply is received from the selected fourth address in response to the fourth request, said positive response record comprising the selected fourth address;

removing the negative response record associated with the selected fourth address from the negative response output file if a reply is received from the selected fourth address in response to the fourth request;

incrementing the address to be searched; and

repeating said steps of selecting a fourth address, transmitting a fourth request, creating a positive response record, removing the negative response record, and incrementing the address until every address in the pinged output file has been queried.

15. The method of claim 14 , further comprising the step of:

removing the pinged record associated with the selected fourth address from the pinged output file if a reply is received from the selected fourth address in response to the fourth request.

16. The method of claim 1 , further comprising the step of:

excluding a specified address from the range of addresses to be searched.

17. The method of claim 1 , further comprising the step of:

excluding a specified set of addresses from the range of addresses to be searched.

18. The method of claim 1 , further comprising the steps of:

incrementing the primary number by one; and

repeating steps (a) through (i) until the entire range of secondary numbers, third numbers, and fourth numbers has been queried.

19. The method of claim 1 , wherein said steps of transmitting a request, creating a response record, and incrementing the address are repeated only for a predetermined time, said method further comprising the step of:

discontinuing said step of repeating said steps of transmitting a request, creating a response record, and incrementing the address once the predetermined time has elapsed, regardless of whether every address in the range of addresses has been queried.

20. The method of claim 1 , further comprising the steps of:

temporarily halting the querying of computers through operator intervention prior to completion; and

resuming the querying of computers through operator intervention at the selected address where the process was temporarily halted.

21. The method of claim 1 , further comprising the step of:

operating a plurality of computers remotely to search the range of addresses in tandem.

22. The method of claim 1 , further comprising the step of:

filtering addresses listed in the response output file for content based upon user-specified criteria.

23. A method of querying a range of IP addresses, wherein each IP address in the range uniquely identifies a computer connected to a distributed network, wherein the IP address comprises a primary number, a secondary number, a third number, and a fourth number, and wherein the range of IP addresses is queried by transmitting a request to each IP address in the range, said method comprising:

(a) inputting a beginning IP address in the range of IP addresses to be queried;

(b) incrementing the secondary number in the IP address without changing the primary number, third number, or fourth number until the entire range of possible secondary numbers has been queried;

(c) incrementing the third number in the IP address by one;

(d) incrementing the secondary number in the IP address without changing the primary number, third number, and fourth number until the entire range of possible secondary numbers has been queried;

(e) repeating steps (c) and (d) until the entire range of possible secondary numbers and third numbers has been queried;

(f) incrementing the fourth number in the IP address by one;

(g) incrementing the secondary number in the IP address without changing the primary number, third number, and fourth number until the entire range of possible secondary numbers has been queried;

(h) incrementing the third number in the IP address by one;

(i) incrementing the secondary number in the IP address without changing the primary number, third number, and fourth number until the entire range of possible secondary numbers has been queried; and

(j) repeating steps (f) through (i) until the entire range of possible secondary numbers, third numbers, and fourth numbers has been queried.

24. The method of claim 23 , further comprising the steps of:

incrementing the primary number by one; and

repeating steps (a) through (j) until the entire range of secondary numbers, third numbers, and fourth numbers has been queried.

25. The method of claim 23 , wherein said request is one of a Hypertext Transfer Protocol (“HTTP”) request, a Hypertext Transfer Protocol Secure (“HTTPS”) request, a File Transfer Protocol (“FTP”) request, a Simple Mail Transfer Protocol (“SMTP”) request, a Network News Transfer Protocol (“NNTP”) request, a User Datagram Protocol (“UDP”) request, and an Internet Chat Relay (“IRC”) request.

26. The method of claim 23 , wherein at least one of steps (e) and (j) are repeated only for a predetermined time, said method further comprising the step of:

(k) discontinuing at least one of steps (e) and (j) once the predetermined time has elapsed, regardless of whether every IP address in the range of IP addresses has been queried.

27. The method of claim 23 , further comprising the steps of:

(k) temporarily halting the querying of IP addresses through operator intervention prior to completion; and

(l) resuming the querying of IP addresses through operator intervention at a later time.

Assignments (21)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2025
From: GEN DIGITAL AMERICAS S.R.O.
To: GEN DIGITAL INC.
Reel/Frame 071771/0767 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2025
From: AVAST SOFTWARE S.R.O.
To: GEN DIGITAL AMERICAS S.R.O.
Reel/Frame 071777/0341 →
RELEASE OF SECURITY INTEREST Recorded Mar 26, 2021
From: CREDIT SUISSE INTERNATIONAL, AS COLLATERAL AGENT
To: AVAST SOFTWARE, S.R.O.; AVAST SOFTWARE B.V.
Reel/Frame 055726/0407 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2018
From: AVAST SOFTWARE B.V.
To: AVAST SOFTWARE S.R.O.
Reel/Frame 046876/0165 →
MERGER Recorded Oct 11, 2017
From: AVG NETHERLANDS B.V.
To: AVG TECHNOLOGIES HOLDINGS B.V.
Reel/Frame 043841/0615 →
MERGER Recorded Oct 11, 2017
From: AVG TECHNOLOGIES HOLDINGS B.V.
To: AVG TECHNOLOGIES B.V.
Reel/Frame 043841/0844 →
MERGER Recorded Oct 11, 2017
From: AVG TECHNOLOGIES B.V.
To: AVAST SOFTWARE B.V.
Reel/Frame 043841/0899 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2017
From: AVG NETHERLANDS B.V.
To: AVAST SOFTWARE B.V.
Reel/Frame 043603/0008 →
SECURITY INTEREST Recorded Jan 27, 2017
From: AVG NETHERLANDS B.V.
To: CREDIT SUISSE INTERNATIONAL, AS COLLATERAL AGENT
Reel/Frame 041111/0914 →
RELEASE OF SECURITY INTEREST Recorded Oct 3, 2016
From: HSBC BANK USA, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: LOCATION LABS, INC.; AVG NETHERLANDS B.V.
Reel/Frame 040205/0406 →
SECURITY INTEREST Recorded Oct 16, 2014
From: AVG NETHERLANDS B.V.; LOCATION LABS, INC.
To: HSBC BANK USA, N.A.
Reel/Frame 034012/0721 →
CHANGE OF NAME Recorded Aug 2, 2013
From: AVG TECHNOLOGIES CY LIMITED
To: AVG NETHERLANDS B.V.
Reel/Frame 030929/0720 →
NUNC PRO TUNC ASSIGNMENT Recorded Jan 12, 2012
From: ENSLEY, STEPHEN J.; HAADSMA, DAVID K.; KOLENDA, DONALD R.
To: BSAFE ONLINE, INC.
Reel/Frame 027520/0967 →
RELEASE OF SECURITY INTEREST Recorded Jan 12, 2012
From: GREGORY, JOSEPH R.
To: EPIC SECURE SOLUTIONS
Reel/Frame 027521/0224 →
NUNC PRO TUNC ASSIGNMENT Recorded Jan 12, 2012
From: EPIC SECURE SOLUTIONS, INC.
To: BSECURE TECHNOLOGIES, INC.
Reel/Frame 027521/0313 →
RELEASE OF SECURITY INTEREST Recorded Jan 12, 2012
From: GREGORY, JOSEPH R.
To: BSECURE TECHNOLOGIES, INC.
Reel/Frame 027521/0383 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2012
From: BSECURE TECHNOLOGIES, INC.
To: AVG TECHNOLOGIES CY LIMITED
Reel/Frame 027521/0554 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2006
From: BSAFE ONLINE, INC.
To: BSECURE TECHNOLOGIES, INC.
Reel/Frame 017921/0590 →
SECURITY AGREEMENT Recorded May 23, 2006
From: BESECURE TECHNOLOGIES, INC.
To: GREGORY, JOSEPH R.
Reel/Frame 017656/0332 →
SECURITY AGREEMENT Recorded Jul 29, 2005
From: BSAFE ONLINE, INC.
To: GREGORY, JOSEPH R.
Reel/Frame 016323/0464 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2002
From: ENSLEY, STEVEN J.; HAADSMA, DAVID K.; KOLENDA, DONALD R.
To: B-SAFE ONLINE.COM
Reel/Frame 013004/0623 →