IP Library Granted Patent US 10,798,209
Granted Patent B1
US 10,798,209 · App. 16/823,783 · Granted Oct 6, 2020

Smart proxy rotator

Inventors: Martynas Juravicius (N. Utos eldership, LT); Eivydas Vilcinskas (Siauliai, LT)
Assignee: metacluster lt, UAB
H04L67/288H04L41/14H04L63/0428H04L67/02H04L67/141
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 10,798,209
App. No.
16/823,783
Filed
Mar 19, 2020
Granted
Oct 6, 2020
Kind
B1
Art Unit
2456
USPC
709/223
Abstract

The task, logic of HTTP/HTTPS session statistics interception and collection is moved to the client side instead of the proxy layer. Encrypted HTTPS tunnel is terminated at the client end, making the actual content or data in transit invisible to both proxies and the smart proxy rotator (SPR). Client's scraping software has a plug-in installed that expands its functionality. HTTP/HTTPS session quality metrics are intercepted and collected at the client side, then sent to the SPR. Proxy usage mark “can be used” is obtained from the SPR for the currently analyzed proxy, based on the results of metrics analysis.

Claims (45)

1. A computer-implemented method for identifying a threshold of a proxy provider, the method comprising:

running a proxy rotator on a computing device connected to a network;

obtaining a proxy from a proxy provider by the proxy rotator;

utilizing a web scraper to:

establish a connection to a target server through the proxy;

receive content designated within a request through the connection;

provide performance and availability information of the proxy to the proxy rotator;

utilizing the proxy rotator to calculate a weight for the proxy provider; and

identifying a threshold of the proxy provider based on the calculated weight;

wherein the proxy rotator stops using a maximized proxy provider, at least for a period of time, when at least one configured maximum threshold is reached;

wherein the at least one configured maximum threshold is reached when a maximum number of concurrent connections is reached, a maximum error threshold is reached, or both the maximum number of concurrent connections is reached and the maximum error threshold is reached;

wherein the content is unreadable to the proxy rotator due to network transport layer or application layer encryption.

2. The method of claim 1 , wherein the web scraper accumulates the performance and availability information from a plurality of proxies before providing the performance and availability information to the proxy rotator.

3. The method of claim 1 , wherein the proxy provider weight is calculated by the proxy rotator based on the evaluation of the performance and availability information from the proxy.

4. The method of claim 1 further comprising dynamically configuring utilization threshold of the proxy provider based on the calculated weight.

5. The method of claim 1 , further comprising periodically calculating and configuring, via the proxy rotator, the proxy provider weight according to the performance and availability information of the proxy provided by the web scraper at any period of time.

6. The method of claim 1 , wherein the performance and availability information collected include at least one of: proxy id, proxy status, proxy response time, or a size of data obtained through the proxy.

7. The method of claim 1 , further comprising loading proxy rotator operational settings into a database on disk, a flat file on disk, a database in memory, or other storage media, including proxy provider settings, utilization thresholds, error thresholds, and proxy lists.

8. The method of claim 1 , further comprising placing the proxy rotator within a client's network, proxy service provider's network, or a party providing proxy rotation services.

9. A non-transitory computer-readable medium for identifying a threshold of a proxy provider, the medium comprising instructions that, when executed by a processor, direct the processor to:

run a proxy rotator on a computing device connected to a network;

obtain a proxy from a proxy provider by the proxy rotator;

utilize a web scraper to:

establish a connection to a target server through the proxy;

receive content designated within a request through the connection;

provide performance and availability information of the proxy to the proxy rotator;

utilize the proxy rotator to calculate a weight for the proxy provider;

identify a threshold of the proxy provider based on the calculated weight; and

placing a usage of the proxy provider on hold, at least for a period of time, when at least one configured maximum threshold is reached;

wherein the at least one configured maximum threshold is reached when a maximum number of concurrent connections is reached, a maximum error threshold is reached, or both the maximum number of concurrent connections is reached and the maximum error threshold is reached.

10. The non-transitory computer-readable medium of claim 9 , further comprising periodically calculating and configuring a weight of the proxy provider at any period of time.

11. The non-transitory computer-readable medium of claim 9 , wherein the performance and availability information of the proxy collected include at least one of: proxy id, proxy status, proxy response time, or a size of data obtained through the proxy.

12. The non-transitory computer-readable medium of claim 9 , further comprising loading proxy rotator operational settings into a database on disk, a flat file on disk, a database in memory, or other storage media, including proxy provider settings, utilization thresholds, error thresholds, and proxy lists.

13. The non-transitory computer-readable medium of claim 9 , further comprising placing the computing device within a client's network, proxy service provider's network, or any other network.

14. The non-transitory computer-readable medium of claim 9 , wherein the content is unreadable to the proxy rotator due to network transport layer or application layer encryption.

15. A computer-implemented method for identifying a threshold of a proxy provider, the method comprising:

running a proxy rotator on a computing device connected to a network;

obtaining a proxy from a proxy provider by the proxy rotator;

utilizing a web scraper to:

establish a connection to a target server through the proxy;

receive content designated within a request through the connection;

provide performance and availability information of the proxy to the proxy rotator;

utilizing the proxy rotator to calculate a weight for the proxy provider; and

identifying a threshold of the proxy provider based on the calculated weight;

wherein the content is unreadable to the proxy rotator due to network transport layer or application layer encryption.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE'S ADDRESS PREVIOUSLY RECORDED ON REEL 062717 FRAME 0361. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Mar 2, 2023
From: METACLUSTER LT, UAB
To: OXYLABS, UAB
Reel/Frame 062929/0678 →
MERGER AND CHANGE OF NAME Recorded Feb 13, 2023
From: METACLUSTER LT, UAB; TESO LT, UAB
To: OXYLABS, UAB
Reel/Frame 062717/0361 →
Continuity (1)
Continuation 16590040 · Oct 1, 2019
Cited By (59)
US 12,192,026 US 12,200,038 US 12,200,083 US 12,200,084 US 12,218,776 US 12,218,777 US 12,229,210 US 12,231,253 US 12,231,519 US 12,250,089 US 12,250,090 US 12,260,364 US 12,261,712 US 12,277,187 US 12,277,188 US 12,277,189 US 12,278,878 US 12,278,880 US 12,284,069 US 12,289,383 US 12,294,481 US 12,301,401 US 12,309,123 US 12,309,241 US 12,323,287 US 12,323,500 US 12,323,501 US 12,332,960 US 12,341,860 US 12,355,855 US 12,368,789 US 12,375,582 US 12,411,902 US 12,413,648 US 12,425,492 US 12,438,956 US 12,445,511 US 12,457,273 US 12,483,635 US 12,517,972 US 12,524,490 US 12,524,491 US 12,536,243 US 12,542,764 US 12,549,645 US 12,563,130 US 12,587,429 US 12,587,430 US 12,587,579 US 12,603,809 US 12,652,330 US 12,659,218 US 12,671,750 US 12,706,984 US 12,719,734 US 12,719,735 US 12,719,945 US 12,724,840 US 12,726,551