Proxies are used in many business tasks, especially when parsing, monitoring, and studying competitor websites, search engine results, large marketplaces, social media, etc. Since proxies are obtained from various sources, they do not always meet the declared/required quality. In most cases, it is impossible to check the quality and functionality of proxies before purchase.
As a result, a separate task or even an entire business process arises—checking and testing proxies before connecting them. Below, you will find exhaustive info on how to test a proxy server, what parameters to pay attention to, and what tools to use for testing.
The simplest way to check a proxy is to connect it to your browser and send a request to any online service capable of returning your IP address in response. Instead of a browser, you can use a terminal and the proxy can be connected at the operating system level.
If the new IP is recognized as the proxy server's IP, then the proxy is working correctly. However, there are many pitfalls like:
As a result, a browser or terminal can only check proxy functionality and do not provide any extended data. If you have a large list of proxies and a critical project, this approach is unacceptable. Therefore, more quality specialized tools or services will be required. We will review them below, but first, let’s look at what exactly can and should be checked.
Here is what should be checked and how:
Have a look at how the signs of non-anonymous proxies in HTTP headers may look like, for example:
In addition to solely proxy parameters, you can also check various signs that reveal the work of a parser (or anti-detect browser). Since all bots present themselves as specific browsers, they can be checked based on a whole set of parameters: JavaScript support (and system variables transmitted within), time zone matching, ActiveX or WebRTC support, user-agent, language, screen resolution, etc. However, this is more about digital fingerprints.
So, we have figured out that there are several different ways to check the proxy viability. These include manual setup and checking (on your device – through a browser or terminal), using special online services (checker programs), or custom scripts that will perform whatever task you program them to do.
The first method is the most labor-intensive and not quite informative, so we won’t consider it. Let's focus on more accessible tools: ready-made programs and online checkers.
The most convenient format is online services. You don’t need to install or configure anything. All checks are completed automatically, and you only receive the final result. There are IP checkers that work with proxy lists and those that analyze your IP address (it’s convenient to connect to such pages and receive information about your current address, so if you're connected through a proxy, you’ll see information about it).
In the first case, you need to additionally provide the port and connection parameters (so that the checker can connect via the proxy and check if it works). However, your access data is effectively disclosed here. No one can guarantee that your proxy information won’t be added to another free database. At the same time, you voluntarily shared your parameters; no one forced you to do that.
In the second case, no one gets anything because you’re not sharing your access parameters with anyone (you’re already connected through a working proxy). However, for organizing bulk checks, you would need to use some kind of proxy rotator (proxy manager) or another software solution to automate the process: replacing the proxy, connecting to the checker, verifying the proxy's operability and parameters, disconnecting and then replacing it with the next one, repeating the process in a cycle.
The samples of checkers for single proxy checks include whatismyproxy.com, ip-api.com (data about IP address location and telecom operator), etc.
Testing large lists every time is very expensive and time-consuming. Instead, you can use extensive IP address databases that have already undergone all the necessary checks. However, it’s important to understand that such databases do not test proxy parameters but help identify them. These databases are specifically integrated with anti-fraud systems.
Examples of such services include IP2Location and MaxMind. The first is very simple and free, while the second offers a variety of interesting options. For instance, there is a special solution for proxy identification (without signs in the HTTP headers, only by IP) and VPN services (VPN vs proxies comparison).
This is a standalone software that can be installed on PCs running Windows or MacOS. Official website.
The utility interface is very simple and does not require translation. You only need to upload your proxy list (paste it into a special field) and start the check. The advantages are obvious: data about your proxies remains with you and you can delete non-working IPs with one click and export only the working ones. The program supports login/password authorization and can check proxies on specified target sites. The software is distributed completely free of charge.
Of course, there are certain risks: the program is written by unknown authors, and no one knows what exactly is in the code. It is quite possible that your PC or Mac may act as a proxy itself. 😉
Technically, you need to write your own script for automatic pinging. You can use existing libraries or frameworks, or you can write the code from scratch.
Here is what exactly should the script do:
It sounds simple, but only those familiar with programming will be able to implement such a script. Below is a simple example of a script in Go.
mkdir \My-proxy-test
(the catalog will be created in the root of the system drive)
cd \My-proxy-test
(switch to this catalog)
go mod init My-proxy-test
(create the Go-module)
go get github.com/trananhtung/proxy-checker
(download the library for the proxy test)
Now you can move on to creating the proxy checker.
To do this, go to the directory with your scripts (“C:\My-proxy-test”) and create a script (a simple text file, where you will later change the extension from .txt to .go). Let it be “my-proxy-checker.go”.
Open it in the text editor (like Notepad) and fill it with the following content:
package main
import (
"fmt"
"github.com/trananhtung/proxy-checker"
)
func main() {
proxy := "http://1.1.1.1:8080" //here should be your proxy
targetURL := "https://google.com" //write the target site here
timeout := uint(5) //add timeout in seconds (value in brackets)
result := proxy_checker.ProxyTest(proxy, targetURL, timeout)
if result {
fmt.Println("Proxy is working")
} else {
fmt.Println("Proxy is not working")
}
}
Note the variable values: you need to insert your proxy and target site; you can adjust the timeout as desired.
Now, let’s learn how to test proxy:
The same library can be used in more complex scripts. In this case, you can access it using the ProxyTest function:
func ProxyTest(proxy, urlTarget string, timeout uint) bool
It will return true or false (similarly to "working" or "not working").
In a loop, you can iterate through lists of proxies of any size.
At first glance, testing proxies may seem like a simple task. In reality, there are many pitfalls. The requirements for tests will depend on the goals and tasks, as well as on the proxy type and purpose.
Above, we have described all the most accessible methods for testing proxy servers and even showed how to organize this at the script level.
If you don’t want to test anything, just purchase high-quality rotating proxies from us. Froxy offers over 10 million IP addresses. The selection includes mobile, residential, and datacenter (server) proxies. If the address goes out of order, it is automatically replaced with a working one. There’s no need to change anything in the connection settings, as the proxies operate on a feedback scheme (the entry into the proxy network for the client remains static).