我是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循环保存到替代表。
任何帮助都会很棒。
答案 0 :(得分:0)
也许拆分网络掩码,检查它并根据其值设置添加IP的迭代次数?