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.
Le processus général d'envoi de demandes à l'aide de Curl est le suivant:
Initialiser la session: curl_init ()
Définir les options de demande: curl_setopt ()
Exécuter la demande: curl_exec ()
Fermez la session: curl_close ()
L'objectif de cet article est sur la façon de configurer un serveur proxy à l'étape 2.
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'é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'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'agent a besoin d'authentification,Définir le nom d'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);
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);
<?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);
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.