CakePHP生成IP范围

时间:2015-01-21 15:55:18

标签: php cakephp

我是CakePHP的新手,并且一直在努力弄清楚如何做到这一点。我需要将IP地址存储在一个表中,其中包含对它们的分配等的描述。我首先创建IP范围,例如192.168.0.1/255.255.255.0这不是问题,但是我希望IP Range在另一个表中创建所有IP地址。

Ip_Ranges(存储为ip2long):

Id, Network,     Subnet,        Description
1 , 192.168.0.0, 255.255.255.0, Internal Range

Ip_Addresses(存储为ip2long):

Address,     Subnet,        Description
192.168.0.1, 255.255.255.0, 
192.168.0.2, 255.255.255.0, 
192.168.0.3, 255.255.255.0,
192.168.0.4, 255.255.255.0,
192.168.0.., 255...

你得到了照片!

到目前为止

代码:

public function add() {
    $this->IpRange->create();
    if ($this->IpRange->save($this->request->data)) {
        $ip = ip2long($this->request->data['IpRange']['Network']); 
        $nm = ip2long($this->request->data['IpRange']['Subnet']); 
        $nw = ($ip & $nm); 
        $bc = $nw | (~$nm); 

        while($ip <= $bc ){
            //What should go here to save the $ip???

            $ip++;
        }             
        $this->Session->setFlash(__('The IP Range has been saved.'));
        return $this->redirect(array('action' => 'index'));
    } else {
        $this->Session->setFlash(__('The IP Range could not be saved. Please, try again.'));
    } 
} 

因此,您可以看到创建IP范围只是一个简单的表单保存,但是当这个保存时,我需要它来填充ip_addresses表,这就是我被卡住的地方。

我该怎么做?我假设有一段时间看起来只是++网络地址,直到达到广播地址,但我不熟悉cakephp和while循环保存到替代表。

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

也许拆分网络掩码,检查它并根据其值设置添加IP的迭代次数?