将ip以一个数分段   例如192.168.1.1-192.168.1.255     以50分段
 
结果为
192.168.1.1-192.168.1.51
192.168.1.52-192.168.1.102
192.168.1.103-192.168.1.153
192.168.1.154-192.168.1.204
192.168.1.205-192.168.1.255
 
或者   
192.168.1.1-192.168.1.51
192.168.1.51-192.168.1.101
192.168.1.101-192.168.1.151
192.168.1.151-192.168.1.201
192.168.1.201-192.168.1.251
192.168.1.251-192.168.1.255
 
以第一个结果为准  大家帮帮忙啦     
 

解决方案 »

  1.   

    $s = ip2long('192.168.1.1');
    $e = ip2long('192.168.1.255');
    for($i=$s; $i<=$e; $i+=51)
      echo long2ip($i),' - ', long2ip($i+50),'<br />';192.168.1.1 - 192.168.1.51
    192.168.1.52 - 192.168.1.102
    192.168.1.103 - 192.168.1.153
    192.168.1.154 - 192.168.1.204
    192.168.1.205 - 192.168.1.255
      

  2.   

    $s = ip2long('192.168.1.1');
    $e = ip2long('192.168.1.255');
    for($i=$s; $i<=$e; $i+=51)
      printf('%2u - %2u<br />',long2ip($i),long2ip($i+50));
      

  3.   

    $ip = '192.168.1.1-192.168.1.255';function divideIP($ip) {
       $ar = explode('-', $ip);
       $ipSTART = explode('.', $ar[0]);
       $ipEND = explode('.', $ar[1]);
       
       $result = array();
       for($i = 0; $ipSTART[3] < $ipEND[3]; $i ++) {
          if ($i % 100000 > 0) $ipSTART[3] ++;
          $tmp = implode('.', $ipSTART).'-';
          if ($ipSTART[3] + 50 > $ipEND[3]) $tmp .= implode('.', $ipEND);
          else {
             $ipSTART[3] += 50;
             $tmp .= implode('.', $ipSTART);
          }
          $result[] = $tmp;
       }
       return $result;
    }
    echo "<pre>";
    print_r(divideIP($ip));