Check a proxy's IP, country and ISP
Check the exit IP, country and ISP your proxy really gives you in 30 seconds — and why IP databases disagree on the city. With our own test of three lookup services.
Every working proxy is described by five basic fields: protocol, host address, port, login, and password. This data determines how your application or browser connects to the proxy server and authenticates.
Every proxy server requires five connection parameters:
Protocol determines the communication format between your device and the proxy. Two common variants are HTTP and SOCKS5. HTTP proxies work at the application level (browser, curl, Python requests), while SOCKS5 works at the level of TCP connections from any application; UDP is defined in the protocol but not every server supports it, and it is not stated for the Proxy302 gateway. When choosing a protocol, make sure it matches what your tool supports.
Host address is the IP address or domain name of the proxy server. In most cases, this is a numeric address like 192.168.1.1 or a domain name like proxy.example.com. Do not change the host unless you have to: it points to a different server.
Port is the number on which the proxy accepts connections. Standard ports for HTTP proxies are 8080 or 3128, for SOCKS5 — 1080. Each provider may have their own ports. Specifying an incorrect port leads to connection errors.
Login (username) and password are needed for authentication on paid proxies. Without this data, the proxy server will return a 407 Proxy Authentication Required error (for HTTP) or reject the connection (for SOCKS5). Store this data in a secure place and do not pass it to third parties.
Proxies are often passed as a single string, but the format may differ.
The host:port:login:password format is used mainly in configuration files and command-line tools. The order of fields is strictly fixed: first the address, then the port, then credentials separated by colons. Example:
192.168.1.1:8080:myuser:mypasswordExample only: replace the placeholder values with your own.
The login:password@host:port format is URL style: curl, environment variables and Python requests accept it, and many proxy managers use it too. Here credentials come before the address, separated by the @ symbol. Example:
myuser:[email protected]:8080Example only: replace the placeholder values with your own.
How to convert between formats: split the string into its four parts and put them back in the other order. The function below detects which format it got and converts it either way. In the URL format the login and password must be percent-encoded, so the function encodes them with quote() and decodes them on the way back:
from urllib.parse import quote, unquote
def convert_format(s):
if '@' in s:
cred, addr = s.rsplit('@', 1)
user, password = cred.split(':', 1)
host, port = addr.split(':')
return f"{host}:{port}:{unquote(user)}:{unquote(password)}"
host, port, user, password = s.split(':', 3)
return f"{quote(user, safe='')}:{quote(password, safe='')}@{host}:{port}"Example only: replace the placeholder values with your own.
Before using, check if the password contains special characters requiring escaping — more on this below.
Chrome and Edge use the operating system settings (Windows: Settings → Network & internet → Proxy; macOS: System Settings → Network → your service → Details → Proxies). Windows has only address and port fields, and the browser asks for the login and password in a pop-up. Firefox has its own settings: Settings → General → Network Settings → Settings. Browsers do not accept login:password@host:port in one field; use a proxy extension to store credentials.
If you use proxy extensions, they may require the host:port:login:password format. Check the documentation for the specific extension.
curl accepts only the URL format in -x/--proxy: scheme://login:password@host:port. Convert a host:port:login:password string first (see the script above), or pass the credentials separately with -U. Example:
curl -x http://myuser:[email protected]:8080 https://example.comExample only: replace the placeholder values with your own.
For SOCKS5, specify the socks5:// scheme:
curl -x socks5://myuser:[email protected]:1080 https://example.comExample only: replace the placeholder values with your own.
If the password contains special characters (@, :, /), curl interprets them as separators. In this case, encode them (see below) or pass the login and password through the separate --proxy-user 'login:password' parameter.
The requests library accepts proxies as a dictionary, where the key is the protocol scheme, and the value is a string with login, password, address, and port:
import requests
proxies = {
'http': 'http://myuser:[email protected]:8080',
'https': 'http://myuser:[email protected]:8080'
}
response = requests.get('https://example.com', proxies=proxies)Example only: replace the placeholder values with your own.
For SOCKS5, you will need the additional requests[socks] library:
proxies = {
'http': 'socks5://myuser:[email protected]:1080',
'https': 'socks5://myuser:[email protected]:1080'
}Example only: replace the placeholder values with your own.
A simple way to check that a proxy is working is to open an IP check service in the browser or via curl, for example ipinfo.io. If the response shows an IP other than your own and the expected country, the setup works; with gateway proxies the exit IP differs from the host you entered. You can also compare the result with a direct request without a proxy: if the addresses differ, the proxy is functioning.
For programmatic checking in Python, send a request through the proxy and compare the received IP with your real one:
import requests
response = requests.get('https://ipinfo.io/json', proxies=proxies)
print(response.json()['ip']) # exit IP: should differ from your real IPExample only: replace the placeholder values with your own.
If you use rotating residential proxies, where the exit IP can change between requests or sessions, the test passes if the response is returned without authorization errors and the address differs from your real one. The proxy location check service helps ensure that the country and city match the selected region.
For rotating residential proxies from Proxy302, the gateway is proxy.proxy302.com, port 2222 for HTTP and 3333 for SOCKS5; HOST, PORT, USERNAME and PASSWORD are shown on the My assets page.
Mixed up fields. Users often put the login in place of the address or the port in place of the password. The result is a connection or authorization error. Always check the order of fields before copying the string.
Wrong protocol. Specifying HTTP instead of SOCKS5 (or vice versa) leads to the server not understanding the request format. Make sure the protocol in the settings matches what the provider issued. Some services support only HTTP, others only SOCKS5.
Extra spaces. Spaces at the beginning or end of the login or password string often remain invisible when copying, but become part of the data. The server treats "myuser" and "myuser " (with a trailing space) as different logins. Trim strings before use or use the .strip() function in scripts.
Special characters in password. Characters @, :, /, % and others have special meaning in URLs and configuration strings. If the password contains such characters, they need to be encoded in URL format (percent-encoding). For example, the character @ is encoded as %40, and : as %3A. In Python, use urllib.parse.quote(password, safe="") for encoding:
from urllib.parse import quote
password = "p@ss:w0rd"
encoded = quote(password, safe="") # p%40ss%3Aw0rdExample only: replace the placeholder values with your own.
When working with proxy services, it is important to correctly specify all five fields: protocol, address, port, login, and password. Each type of proxy — from rotating residential to static ISP — has its own connection features. Learn more about how proxies work and their application for testing, monitoring, and data collection tasks in the general proxy guide.
A proxy is described by five fields: protocol (HTTP or SOCKS5), host address (IP or domain name), port, login, and password. Together they define how to connect to the proxy server and, when required, how to authenticate.
There are two common formats. The host:port:login:password format is used in configuration files and terminal, while the login:password@host:port format is URL style, used by curl, Python requests and many proxy managers. They hold the same data, but programs accept different formats: curl, environment variables and Python requests take only the URL format.
Send a request through the proxy to the ipinfo.io service or similar. If the response shows an IP other than your own and the expected country, the proxy is working; with gateway proxies the exit IP differs from the host you entered. A detailed guide on checking proxy location is described in the proxy check guide.
Most often, the problem is a protocol mismatch, extra spaces in the string, or unescaped special characters in the password. Blocking by the service you are sending the request to is also possible.
A proxy is an intermediate server between your device and the target website. It receives a request from you, forwards it to the site, and returns the response. A proxy allows changing the visible network address for testing regional versions of sites, monitoring prices, or collecting publicly available data.
Rotating residential proxies fit this task: you choose the exit country (195+ countries and regions, with state and city on lines that support it) and pay per GB, so you pay only for the traffic you use. The rotating residential page has the setup. The table below shows where exits in 7 countries landed in our latest hourly check; the probe sends its request to ChatGPT, which is only an example target. To check your own exit, use the proxy location guide.
| Item | City | Network (ISP) | ASN |
|---|---|---|---|
| United States | Denver, Colorado | Comcast Cable Communications, LLC | AS7922 |
| United Kingdom | Chesterfield, England | Plusnet | AS6871 |
| Germany | Köln, North Rhine-Westphalia | NetCologne Gesellschaft fur Telekommunikation mbH | AS8422 |
| Japan | Kashiwazaki, Niigata | NTT DOCOMO BUSINESS,Inc. | AS4713 |
| Singapore | Singapore | Whiz Communications Pte Ltd | AS135600 |
| Brazil | Ecoporanga, Espírito Santo | KMM TELECOM LTDA-ME | AS264542 |
| Indonesia | Bandar Lampung, Lampung | PT Telekomunikasi Indonesia | AS7713 |
Hourly check of the Proxy302 probe, 23 October 2026, 15:47 UTC: one request to ChatGPT per country through a dynamic residential exit, using the public Proxy302 entry. Only the first three octets of an IP are public. One sample per country, not an average; later checks will differ.
Open the rotating residential page, choose the line, and keep Protocol on HTTP or choose SOCKS5, then click Review cost and generate.
Open My assets (the console page that holds everything you bought) and copy HOST, PORT, USERNAME and PASSWORD. The Connect page shows a ready example with your own endpoint.
Enter the details in the browser or tool you are setting up.
Confirm the exit with https://ipinfo.io/json through the proxy.
From mainland China, start the helper tool from the Connect page first and keep it open while you use the proxy.
The Budget line costs US$1.50 per GB, US$1.35 per GB in a 100 GB package and US$1.20 per GB at 300 GB. There is no free trial, and the smallest purchase is 1 GB. Which exit locations are available changes daily.
Product observation · Confirmed on:
Product facts file of the site (values checked against the console, the backend and the price table on 18-19 October 2026): products, prices in US$ (1 PTC = US$1), lease terms, protocols and ports, countries, quantity limits, no free trial.
Product observation · Confirmed on:
Public JSON of the probe at proxy302.com/live/connectivity/chatgpt.json, read 23 October 2026, 15:47 UTC: one request per exit country through a dynamic residential exit; exit city, ASN, network and response time.
Create an account, top up once, then pick rotating residential, static ISP or datacenter IPs and have one running in your browser within minutes.