# Рабочие примеры для клиентов, которыми действительно пользуются.

Каждый фрагмент запрашивает `https://api.ipify.org` через резидентский прокси в США и выводит IP. Замените параметры имени пользователя и целевой адрес — всё остальное останется без изменений.


## Командная строка

**cURL**

```curl
# Прокси HTTP(S)
curl -x http://USER-cc-us:PASS@res.hodlproxy.com:9000 https://api.ipify.org

# SOCKS5 с удалённым DNS
curl --proxy socks5h://USER-cc-us:PASS@res.hodlproxy.com:9001 https://api.ipify.org

# Закреплённая сессия на 30 минут; подробный вывод показывает CONNECT
curl -v -x http://USER-cc-us-sid-a1b2c3-ttl-30m:PASS@res.hodlproxy.com:9000 https://api.ipify.org
```

**wget**

```wget
https_proxy=http://USER-cc-us:PASS@res.hodlproxy.com:9000 \
http_proxy=http://USER-cc-us:PASS@res.hodlproxy.com:9000 \
wget -qO- https://api.ipify.org
```

**Переменные окружения**

```env
# Их учитывают большинство консольных инструментов и многие библиотеки
export HTTP_PROXY=http://USER-cc-us:PASS@res.hodlproxy.com:9000
export HTTPS_PROXY=http://USER-cc-us:PASS@res.hodlproxy.com:9000
export NO_PROXY=localhost,127.0.0.1

curl https://api.ipify.org
```


## Python

**requests**

```requests
import requests

proxy = "http://USER-cc-us:PASS@res.hodlproxy.com:9000"
session = requests.Session()
session.proxies = {"http": proxy, "https": proxy}

r = session.get("https://api.ipify.org", timeout=30)
print(r.text)

# Закреплённая сессия: формируем имя пользователя для каждого идентификатора сессии
def proxy_for(sid: str, cc: str = "us", ttl: str = "10m") -> str:
    return f"http://USER-cc-{cc}-sid-{sid}-ttl-{ttl}:PASS@res.hodlproxy.com:9000"
```

**httpx**

```httpx
import httpx

proxy = "http://USER-cc-us:PASS@res.hodlproxy.com:9000"
with httpx.Client(proxy=proxy, timeout=30) as client:
    print(client.get("https://api.ipify.org").text)

# Асинхронный вариант
# async with httpx.AsyncClient(proxy=proxy) as client: ...
```

**aiohttp**

```aiohttp
import asyncio
import aiohttp
async def main():
    auth = aiohttp.BasicAuth("USER-cc-us", "PASS")
    async with aiohttp.ClientSession() as session:
        async with session.get("https://api.ipify.org",
                               proxy="http://res.hodlproxy.com:9000",
                               proxy_auth=auth, timeout=30) as r:
            print(await r.text())

asyncio.run(main())
```

**Scrapy**

```scrapy
import scrapy

class IpSpider(scrapy.Spider):
    name = "ip"

    def start_requests(self):
        # HttpProxyMiddleware (включён по умолчанию) считывает учётные данные из URL
        yield scrapy.Request(
            "https://api.ipify.org",
            meta={"proxy": "http://USER-cc-us:PASS@res.hodlproxy.com:9000"},
        )

    def parse(self, response):
        yield {"ip": response.text}
```


## Node.js

**undici / fetch**

```undici
import { fetch, ProxyAgent } from "undici";

const dispatcher = new ProxyAgent("http://USER-cc-us:PASS@res.hodlproxy.com:9000");
const res = await fetch("https://api.ipify.org", { dispatcher });
console.log(await res.text());
```

**axios**

```axios
import axios from "axios";
import { HttpsProxyAgent } from "https-proxy-agent";

const agent = new HttpsProxyAgent("http://USER-cc-us:PASS@res.hodlproxy.com:9000");
const { data } = await axios.get("https://api.ipify.org", {
  httpsAgent: agent,
  proxy: false, // обработку прокси выполняет агент
});
console.log(data);
```

**Playwright**

```playwright
import { chromium } from "playwright";

const browser = await chromium.launch({
  proxy: {
    server: "http://res.hodlproxy.com:9000",
    username: "USER-cc-us-sid-a1b2c3-ttl-30m",
    password: "PASS",
  },
});
const page = await browser.newPage();
await page.goto("https://api.ipify.org");
console.log(await page.textContent("body"));
await browser.close();
```

**Puppeteer**

```puppeteer
import puppeteer from "puppeteer";

const browser = await puppeteer.launch({
  args: ["--proxy-server=res.hodlproxy.com:9000"],
});
const page = await browser.newPage();
await page.authenticate({ username: "USER-cc-us-sid-a1b2c3", password: "PASS" });
await page.goto("https://api.ipify.org");
console.log(await page.evaluate(() => document.body.innerText));
await browser.close();
```


## PHP

**cURL**

```curl
$ch = curl_init("https://api.ipify.org");
curl_setopt_array($ch, [
    CURLOPT_PROXY          => "http://res.hodlproxy.com:9000",
    CURLOPT_PROXYUSERPWD   => "USER-cc-us:PASS",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 30,
]);
echo curl_exec($ch);
```

**Guzzle**

```guzzle
$client = new \GuzzleHttp\Client();
$response = $client->get('https://api.ipify.org', [
    'proxy'   => 'http://USER-cc-us:PASS@res.hodlproxy.com:9000',
    'timeout' => 30,
]);
echo $response->getBody();
```


## Go, Java и C#

**Go**

```go
package main

import (
    "fmt"
    "io"
    "net/http"
    "net/url"
)

func main() {
    proxyURL, _ := url.Parse("http://USER-cc-us:PASS@res.hodlproxy.com:9000")
    client := &http.Client{Transport: &http.Transport{Proxy: http.ProxyURL(proxyURL)}}
    resp, err := client.Get("https://api.ipify.org")
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()
    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}
```

**Java (OkHttp)**

```java
import okhttp3.*;
import java.net.InetSocketAddress;
import java.net.Proxy;

Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("res.hodlproxy.com", 9000));
OkHttpClient client = new OkHttpClient.Builder()
    .proxy(proxy)
    .proxyAuthenticator((route, response) -> response.request().newBuilder()
        .header("Proxy-Authorization", Credentials.basic("USER-cc-us", "PASS"))
        .build())
    .build();

try (Response res = client.newCall(new Request.Builder().url("https://api.ipify.org").build()).execute()) {
    System.out.println(res.body().string());
}

// В java.net.http.HttpClient базовая аутентификация для CONNECT по умолчанию отключена начиная с Java 8u111.
// Чтобы включить её, запустите JVM с параметром -Djdk.http.auth.tunneling.disabledSchemes=.
```

**C#**

```csharp
using System.Net;
var handler = new HttpClientHandler
{
    Proxy = new WebProxy("http://res.hodlproxy.com:9000")
    {
        Credentials = new NetworkCredential("USER-cc-us", "PASS")
    },
    UseProxy = true,
};
using var http = new HttpClient(handler);
Console.WriteLine(await http.GetStringAsync("https://api.ipify.org"));
```


## Браузеры и антидетект-инструменты

- Флаг Chrome `--proxy-server` не принимает учётные данные. Используйте Playwright или Puppeteer (они отвечают на запрос аутентификации за вас) либо добавьте IP компьютера в [белый список](https://hodlproxy.com/ru/docs/authentication#ip-whitelist) и используйте только этот флаг.
- В Selenium также нет встроенной аутентификации прокси; белый список — надёжный вариант.
- Антидетект-браузеры (Multilogin, GoLogin, AdsPower, Dolphin и подобные) принимают для каждого профиля строку `host:port:user:pass`. Вставьте строку выделенного адреса либо адрес шлюза с уникальным `-sid-` для каждого профиля.
- При ручной настройке Firefox и Chrome запрашивают пароль прокси один раз за сессию; автоматизация не должна полагаться на этот запрос.

> Tip: Какой бы клиент вы ни использовали, сначала проверьте его через `https://api.ipify.org` и сравните результат с прямым запросом. Если в обоих случаях выводится один и тот же IP, прокси не используется: проверьте переменные окружения, `NO_PROXY` и то, какое имя параметра ожидает библиотека — `proxy` или `proxies`.


Источник: https://hodlproxy.com/ru/docs/examples
