102 lines
3.4 KiB
PHP
102 lines
3.4 KiB
PHP
<?php
|
|
set_time_limit(999);
|
|
if (!extension_loaded('curl')) {
|
|
die("L'extension cURL est nécessaire.\n");
|
|
}
|
|
|
|
// Paramètres pour la requête
|
|
$username = 'ssorecovery';
|
|
$password = 'Mot de passe Recovery';
|
|
|
|
// Liste des IPs séparées par une virgule
|
|
$ips = '10.60.105.71';
|
|
$ipList = explode(',', $ips);
|
|
|
|
// Requêtes à effectuer
|
|
$request[0] = 'user-management-v2/start-update';
|
|
$request[1] = 'user-management-v2/client?$expand=*&force=true';
|
|
$request[2] = 'user-management-v2/end-update';
|
|
|
|
// Données JSON pour la deuxième requête
|
|
$jsonData[1] = '{"radius":{"enabled":false},"oidc":{"enabled":false}}';
|
|
|
|
// Fonction pour effectuer une requête cURL
|
|
function makeCurlRequest($url, $method, $headers = [], $postData = null, $cookieFile = null) {
|
|
echo $url . "\n";
|
|
$ch = curl_init($url);
|
|
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
|
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
|
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
|
|
|
|
if (!empty($headers)) {
|
|
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
|
}
|
|
if ($postData) {
|
|
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
|
|
}
|
|
if ($cookieFile) {
|
|
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile);
|
|
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile);
|
|
}
|
|
|
|
$response = curl_exec($ch);
|
|
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
|
|
|
if (curl_errno($ch)) {
|
|
echo "Erreur cURL : " . curl_error($ch) . "\n";
|
|
}
|
|
|
|
curl_close($ch);
|
|
return ['response' => $response, 'httpCode' => $httpCode];
|
|
}
|
|
|
|
// Parcourir chaque IP et effectuer les requêtes
|
|
foreach ($ipList as $ip) {
|
|
$baseUrl = "https://$ip/api/rest/v1/";
|
|
$cookieFile = tempnam(sys_get_temp_dir(), 'cookie_'); // Fichier temporaire pour les cookies
|
|
|
|
echo "Traitement de l'IP : $ip\n";
|
|
|
|
// 1ère requête : Authentification ou début de session
|
|
$url1 = $baseUrl . $request[0];
|
|
$authHeaders = [
|
|
'Content-Type: application/json',
|
|
'Authorization: Basic ' . base64_encode("$username:$password")
|
|
];
|
|
$response1 = makeCurlRequest($url1, 'POST', $authHeaders, null, $cookieFile);
|
|
|
|
if ($response1['httpCode'] == 200) {
|
|
echo "1ère requête réussie pour $ip : " . $response1['response'] . "\n";
|
|
} else {
|
|
echo "1ère requête échouée pour $ip, Code HTTP : " . $response1['httpCode'] . "\n";
|
|
continue;
|
|
}
|
|
|
|
// 2ème requête : Envoyer le body JSON
|
|
$url2 = $baseUrl . $request[1];
|
|
$headers2 = ['Content-Type: application/json'];
|
|
$response2 = makeCurlRequest($url2, 'POST', $headers2, $jsonData[1], $cookieFile);
|
|
|
|
if ($response2['httpCode'] == 200) {
|
|
echo "2ème requête réussie pour $ip : " . $response2['response'] . "\n";
|
|
} else {
|
|
echo "2ème requête échouée pour $ip, Code HTTP : " . $response2['httpCode'] . "\n";
|
|
}
|
|
|
|
// 3ème requête : Envoyer le body JSON
|
|
$url3 = $baseUrl . $request[2];
|
|
$headers3 = ['Content-Type: application/json'];
|
|
$response3 = makeCurlRequest($url3, 'POST', $headers3, null, $cookieFile);
|
|
|
|
if ($response2['httpCode'] == 200) {
|
|
echo "3ème requête réussie pour $ip : " . $response2['response'] . "\n";
|
|
} else {
|
|
echo "3ème requête échouée pour $ip, Code HTTP : " . $response2['httpCode'] . "\n";
|
|
}
|
|
|
|
// Nettoyer le fichier temporaire des cookies
|
|
unlink($cookieFile);
|
|
}
|
|
?>
|