我会在开头说我是一名灯光设计师而不是程序员,所以要友善!
我有从 Postman 生成的 API 调用。除了一遍又一遍地复制和粘贴之外,将此呼叫发送到某个范围内的多个 IP 地址(考虑到某些 IP 可能不存在)的最有效方法是什么?
即我想将以下调用发送到从 2.4.7.1 到 2.4.7.99 的每个 IP,但是 2.4.7.56 可能不作为设备存在
蒂亚
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'http://2.4.7.1/api/profile/10/recall',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"keep_ip_settings": false
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Accept: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
您可以将curl语句放在函数中(例如callcurl),这样您就可以使用循环来调用该函数。
循环可以简单地是(通过
if condition
忽略 2.4.7.56):
$index=1;
while ($index <=99){
if ($index !=56) {
callcurl("2.4.7.".$index);
}
$index++;
}
所以整个代码将是:
<?php
function callcurl($ip) {
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'http://'. $ip . '/api/profile/10/recall',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"keep_ip_settings": false
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Accept: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
}
$index=1;
while ($index <=99){
if ($index !=56) {
callcurl("2.4.7.".$index);
}
$index++;
}
?>