Position actuelle: Accueil> Derniers articles> Comment configurer un serveur proxy dans curl_setopt dans curl_close?

Comment configurer un serveur proxy dans curl_setopt dans curl_close?

gitbox 2025-05-26

Dans PHP, Curl est une bibliothèque puissante pour effectuer diverses demandes HTTP. Dans de nombreux cas, nous devons initier une demande via un serveur proxy, par exemple pour masquer la véritable IP ou les ressources restreintes d'accès. Cet article expliquera en détail comment configurer un serveur proxy en conjonction avec la fonction Curl_Setopt lors de la fermeture d'une session Curl à l'aide de Curl_close pour implémenter le proxy de la demande.

1. Examen du processus de base Curl

Le processus général d'envoi de demandes à l'aide de Curl est le suivant:

  1. Initialiser la session: curl_init ()

  2. Définir les options de demande: curl_setopt ()

  3. Exécuter la demande: curl_exec ()

  4. Fermez la session: curl_close ()

L'objectif de cet article est sur la façon de configurer un serveur proxy à l'étape 2.

2. Utilisez curl_setopt pour configurer un serveur proxy

Curl offre des options spéciales pour configurer le proxy:

  • Curlopt_proxy : adresse du serveur proxy (nom de domaine IP ou de domaine et port)

  • Curlopt_proxyport : port de serveur proxy (facultatif)

  • Curlopt_proxyuserpwd : le nom d'utilisateur et le mot de passe du serveur proxy, le format est le nom d'utilisateur: mot de passe (facultatif)

  • Curlopt_proxytype : type de proxy, par défaut est le proxy http, les types courants incluent les socks5, etc.

Exemple de code:

 <?php
// initialisation cURL Session
$ch = curl_init();

// Configurer une demande URL,Voici une interface d&#39;échantillon,Remplacer le nom de domaine par gitbox.net
curl_setopt($ch, CURLOPT_URL, "https://api.gitbox.net/example/data");

// Renvoie la réponse au lieu de la sortie directe
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// Définir l&#39;adresse et le port du serveur proxy
curl_setopt($ch, CURLOPT_PROXY, "proxy.gitbox.net");   // Adresse du serveur proxy
curl_setopt($ch, CURLOPT_PROXYPORT, 8080);             // Port proxy

// Si l&#39;agent a besoin d&#39;authentification,Définir le nom d&#39;utilisateur et le mot de passe
// curl_setopt($ch, CURLOPT_PROXYUSERPWD, "user:password");

// Si nécessaire SOCKS5 par intérim,设置par intérim类型
// curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);

// Exécuter une demande
$response = curl_exec($ch);

// Déterminez si la demande est réussie
if(curl_errno($ch)){
    echo 'Curl error: ' . curl_error($ch);
} else {
    echo $response;
}

// fermeture cURL Session
curl_close($ch);

3. Explication détaillée des options liées aux agents

Options illustrer
Curlopt_proxy Définir l'adresse du serveur proxy, prendre en charge IP et nom de domaine
Curlopt_proxyport Définir le port du serveur proxy, la valeur par défaut est 8080
Curlopt_proxyuserpwd Définissez le nom d'utilisateur et le mot de passe pour l'authentification proxy, le format est l'utilisateur: PASS
Curlopt_proxytype Définissez les types de proxy, tels que HTTP (par défaut), SOCKS4, SOCKS5, etc.
Curlopt_httpproxytunnel Que vous puissiez activer le tunnel proxy HTTP, par défaut

Par exemple, si le serveur proxy nécessite une authentification du nom d'utilisateur et du mot de passe et est un proxy SOCKS5, vous pouvez l'écrire comme ceci:

 curl_setopt($ch, CURLOPT_PROXY, "proxy.gitbox.net");
curl_setopt($ch, CURLOPT_PROXYPORT, 1080);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, "user:password");
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);

4. Exemple complet Résumé

 <?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.gitbox.net/example/data");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_PROXY, "proxy.gitbox.net");
curl_setopt($ch, CURLOPT_PROXYPORT, 8080);

$response = curl_exec($ch);

if(curl_errno($ch)){
    echo 'Curl error: ' . curl_error($ch);
} else {
    echo $response;
}

curl_close($ch);

5. Résumé

  • Utilisez l'option Curlopt_proxy Series de Curl_Setopt pour configurer facilement un serveur proxy.

  • L'adresse proxy doit indiquer le nom de domaine ou IP, et le port peut être défini séparément.

  • Lorsque l'authentification est requise, fournissez le nom d'utilisateur et le mot de passe via curlopt_proxyuserpwd .

  • Le type de proxy est défini en fonction des exigences. HTTP est le type par défaut et doit être spécifié spécifiquement lorsqu'un proxy SOCKS5 est spécifié.

  • Après utilisation, appelez Curl_close pour libérer la ressource.

De cette façon, vous pouvez utiliser Curl en FLM dans PHP pour coopérer avec le serveur proxy pour initier des demandes HTTP pour répondre à divers besoins en environnement réseau.