PHP cURL 发送到 IP 范围

问题描述 投票:0回答:1

我会在开头说我是一名灯光设计师而不是程序员,所以要友善!

我有从 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;
php curl
1个回答
0
投票

您可以将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++;
}

?>
© www.soinside.com 2019 - 2024. All rights reserved.