GELİŞTİRİCİ UYUMLULUĞU
12 dilde, standart istemcilerle protokol düzeyinde bağlantı.
HTTP, HTTPS ve SOCKS5 için yer tutuculu, kopyalanabilir örnekler. Özel bir SDK veya API yok; mevcut HTTP istemciniz proxy ayarıyla çalışır.
01ENTEGRASYON MATRİSİ
Dil ve protokolü seçin, örneği kopyalayın.
Soldaki listeden dili, üstteki sekmelerden protokolü seçin. Her örnek api.ipify.org adresine proxy üzerinden tek bir GET isteği atar.
ÖRNEK · Python · HTTP · proxy_http.py
# pip install requests
import requests
# Şifrede @ : / gibi karakter varsa urllib.parse.quote() ile kodlayın.
proxy = "http://KULLANICI:[email protected]:PORT"
proxies = {"http": proxy, "https": proxy}
r = requests.get("http://api.ipify.org", proxies=proxies, timeout=15)
print(r.text)Bunlar standart istemci kütüphaneleriyle protokol düzeyinde örneklerdir; DATACENTERPROXY'ye ait bir SDK veya API yoktur. Örneklerdeki adres ve kimlik bilgileri yer tutucudur: proxy.example.com, PORT, KULLANICI, SIFRE.
02KURULUM NOTLARI
Dil başına hazırlık ve tek bir dikkat noktası.
Gerekli paketler ve o dilde en sık yapılan hata. HTTP ve HTTPS örneklerinin çoğu ek paket gerektirmez; SOCKS5 için çoğu dilde ek paket gerekir.
| Dil | Hazırlık | Dikkat |
|---|---|---|
| Python | pip install requests "requests[socks]" | Şifre özel karakter içeriyorsa URL içinde urllib.parse.quote() ile kodlayın; aksi halde 407 veya ayrıştırma hatası alırsınız. |
| JavaScript | npm i axios https-proxy-agent socks-proxy-agent | axios'un "proxy" seçeneği yalnızca HTTP hedefte doğru çalışır; HTTPS hedef için agent kullanın ve proxy: false verin. |
| TypeScript | npm i undici axios socks-proxy-agent | Üst düzey await için dosyayı ESM olarak çalıştırın ("type": "module" ve uygun tsconfig module ayarı). |
| Node.js | npm i socks (HTTP ve HTTPS örnekleri paket gerektirmez) | CONNECT yanıtı 200 değilse tünel kurulmamıştır; durum kodunu (ör. 407) kontrol edin. |
| Go | go get golang.org/x/net/proxy | http.Transport proxy URL'sindeki kullanıcı bilgisini Proxy-Authorization başlığına çevirir; ayrıca başlık eklemeniz gerekmez. |
| PHP | php-curl eklentisi etkin olmalı | Uzaktan DNS için CURLPROXY_SOCKS5_HOSTNAME kullanın; CURLPROXY_SOCKS5 adı yerelde çözer. |
| Java | JDK 11 veya üzeri; ek paket gerekmez | HTTPS hedefte CONNECT kimlik doğrulaması için jdk.http.auth.tunneling.disabledSchemes özelliği boşaltılmalıdır; SOCKS5 için HttpURLConnection kullanın. |
| C# | .NET 6 veya üzeri; ek paket gerekmez | socks5:// şeması .NET 6 ile eklendi; daha eski sürümlerde SOCKS5 için üçüncü taraf kütüphane gerekir. |
| C++ | libcurl geliştirme paketi (ör. libcurl4-openssl-dev) | CURLOPT_PROXY içinde şema belirtin (http://, socks5h://); şemasız adres HTTP proxy sayılır. |
| Ruby | gem install socksify (HTTP ve HTTPS örnekleri paket gerektirmez) | Net::HTTP.start içinde proxy argümanları hedef adresten sonra gelir; sıralama karışırsa bağlantı yanlış sunucuya gider. |
| Rust | Cargo.toml içine reqwest ekleyin; SOCKS5 için "socks" özelliğini açın | SOCKS5 kimlik bilgisini Proxy::basic_auth ile değil, URL içinde verin. |
| Bash | curl 7.18 veya üzeri | socks5h:// ile DNS proxy'de çözülür; socks5:// kullanırsanız ad çözümü yerel makineden yapılır. |
03SORUN GİDERME
Dört tipik hata ve nereye bakmalı.
Bağlantı kurulamadığında önce hata sınıfını ayırın: kimlik doğrulama, ulaşım, ad çözümü ya da TLS.
- 407Proxy Authentication Required
- Proxy kimlik bilgisini kabul etmedi. Kullanıcı adı ve şifreyi panelden birebir kopyalayın, baştaki ve sondaki boşlukları temizleyin. Şifre @ : / # gibi karakterler içeriyorsa URL içinde yüzde kodlaması gerekir.
- REFUSEDBağlantı reddedildi veya zaman aşımı
- Adres ya da port yanlış olabilir; önce protokolü doğrulayın (HTTP proxy portuna SOCKS5 ile bağlanmak başarısız olur). Ardından kendi ağınızın veya güvenlik duvarınızın bu çıkış portunu engelleyip engellemediğine bakın.
- DNSAd çözümünün yerelde kalması
- SOCKS5 ile socks5:// şeması alan adını yerel makinede çözer; socks5h:// (PHP için CURLPROXY_SOCKS5_HOSTNAME) çözümü proxy tarafına bırakır. Hedef adın proxy üzerinden çözülmesini istiyorsanız h'li biçimi kullanın.
- TLSSertifika veya el sıkışma hatası
- HTTPS hedefte istemci önce CONNECT tüneli açar, TLS el sıkışması hedefle uçtan uca yapılır. Hata sertifika doğrulamasından geliyorsa sistem saatini ve CA deposunu kontrol edin; doğrulamayı kapatmak çözüm değildir.
04cURL İLE DOĞRULAMA
Önce komut satırında deneyin.
Koddan önce curl ile bağlantıyı doğrulamak, sorunun kodda mı ağda mı olduğunu hızla ayırır. Proxy üzerinden dönen adres, doğrudan bağlantıdakinden farklı olmalıdır.
# 1) Proxy olmadan çıkış adresiniz
curl -sS https://api.ipify.org
echo
# 2) Aynı istek proxy üzerinden: farklı bir adres görmelisiniz
curl -sS -x "http://proxy.example.com:PORT" --proxy-user "KULLANICI:SIFRE" https://api.ipify.org
echo
# 3) Bağlantı ayrıntısı: CONNECT yanıtı (200) ve olası 407 burada görünür
curl -sS -v -o /dev/null -x "http://proxy.example.com:PORT" --proxy-user "KULLANICI:SIFRE" https://api.ipify.orgDEVAM