function docsis_ModemAdd($maclan) { $maclan = mysql_real_escape_string($maclan); //random mac for usb $macusb = '14:' . '88' . ':' . rand(10, 99) . ':' . rand(10, 99) . ':' . rand(10, 99) . ':' . rand(10, 99); $altercfg = rcms_parse_ini_file(CONFIG_PATH . '/alter.ini'); $netid = $altercfg['DOCSIS_MODEM_NETID']; $nextfreeip = multinet_get_next_freeip('nethosts', 'ip', $netid); $note = ''; $userbind = ''; $basetemplate = 'short'; $date = curdate(); //check for free ip in subnet if (!empty($nextfreeip)) { $nic = str_replace('.', 'x', $nextfreeip); //check is mac unique? if (multinet_mac_free($maclan) and check_mac_format($maclan)) { $query = "INSERT INTO `modems` (\n `id` ,\n `maclan` ,\n `macusb` ,\n `date` ,\n `ip` ,\n `conftemplate` ,\n `userbind` ,\n `nic` ,\n `note`\n )\n VALUES (\n NULL , '" . $maclan . "', '" . $maclan . "', '" . $date . "', '" . $nextfreeip . "', '" . $basetemplate . "', '' , '" . $nic . "', ''\n );"; nr_query($query); $lastid = simple_get_lastid('modems'); log_register("DOCSIS MODEM ADD MAC" . $maclan . " IP " . $nextfreeip . "[" . $lastid . "]"); multinet_add_host($netid, $nextfreeip, $maclan, ''); multinet_rebuild_all_handlers(); rcms_redirect("?module=docsis&showmodem=" . $lastid); } else { show_window(__('Error'), __('This MAC is currently used') . ' ' . __('This MAC have wrong format')); } } else { show_window(__('Error'), __('No free IP available in selected pool')); } }
/** * Saves ONU changes into database * * @param int $onuId * @param int $onumodelid * @param int $oltid * @param string $ip * @param string $mac * @param string $serial * @param string $login * * @return void */ public function onuSave($onuId, $onumodelid, $oltid, $ip, $mac, $serial, $login) { $mac = strtolower($mac); $mac = trim($mac); $onuId = vf($onuId, 3); $onumodelid = vf($onumodelid, 3); $oltid = vf($oltid, 3); $ip = mysql_real_escape_string($ip); $mac = mysql_real_escape_string($mac); $serial = mysql_real_escape_string($serial); $login = mysql_real_escape_string($login); $login = trim($login); $where = " WHERE `id`='" . $onuId . "';"; simple_update_field('pononu', 'onumodelid', $onumodelid, $where); simple_update_field('pononu', 'oltid', $oltid, $where); simple_update_field('pononu', 'ip', $ip, $where); if (!empty($mac)) { if (check_mac_format($mac)) { if ($this->checkMacUnique($mac)) { simple_update_field('pononu', 'mac', $mac, $where); } else { log_register('PON MACDUPLICATE TRY `' . $mac . '`'); } } else { log_register('PON MACINVALID TRY `' . $mac . '`'); } } else { log_register('PON MACEMPTY TRY `' . $mac . '`'); } simple_update_field('pononu', 'serial', $serial, $where); simple_update_field('pononu', 'login', $login, $where); log_register('PON EDIT ONU [' . $onuId . ']'); }
/** * Format heximal mac address to decimal or show error * * @param string $macOnu * @return string */ protected function MacHexToDec($macOnu) { if (check_mac_format($macOnu)) { $res = array(); $args = explode(":", $macOnu); foreach ($args as $each) { $res[] = hexdec($each); } $string = implode(".", $res); return $string; } else { show_error("Wrong mac format (shoud be XX:XX:XX:XX:XX:XX)"); } }
$alert = ' <script type="text/javascript"> alert("' . __('Error') . ': ' . __('No free IP available in selected pool') . '"); </script> '; die($alert); } } } //editing MAC if (wf_CheckPost(array('editmac'))) { $mac = trim($_POST['editmac']); //check mac for free if (multinet_mac_free($mac)) { //validate mac format if (check_mac_format($mac)) { $ip = zb_UserGetIP($login); $old_mac = zb_MultinetGetMAC($ip); multinet_change_mac($ip, $mac); log_register("MAC CHANGE (" . $login . ") " . $ip . " FROM " . $old_mac . " ON " . $mac); multinet_rebuild_all_handlers(); } else { //show error when MAC haz wrong format show_window(__('Error'), __('This MAC have wrong format')); //debuglog log_register("MACINVALID TRY (" . $login . ")"); } } else { log_register("MACDUPLICATE TRY (" . $login . ")"); } }
} $newpassportdate = $_POST['newpassportdate']; $newpassportnum = $_POST['newpassportnum']; $newpassportwho = $_POST['newpassportwho']; //check is ip acceptable for this pool? @($checkfreeip = multinet_get_next_freeip('nethosts', 'ip', $newnetid)); if (!empty($checkfreeip)) { //check is ip acceptable for this pool? $allfreeips = multinet_get_all_free_ip('nethosts', 'ip', $newnetid); $allfreeips = array_flip($allfreeips); if (isset($allfreeips[$newip])) { //MAC address check $newmac = trim($_POST['newmac']); if (multinet_mac_free($newmac)) { //validate mac format if (check_mac_format($newmac)) { /* all is good with critycal data * lets begin the collect new userdata and registering user */ $newuser_data['city'] = $newcityid; $newuser_data['street'] = $newstreetid; $newuser_data['build'] = $newbuildid; $newuser_data['entrance'] = $newentrance; $newuser_data['floor'] = $newfloor; $newuser_data['apt'] = $newaptnum; $newuser_data['service'] = $newserviceid; $newuser_data['IP'] = $newip; $newuser_data['login'] = $newlogin; $newuser_data['password'] = $newpassword; //register user in stargazer log_register("EXPRESSUSERREG(" . $newlogin . ") BEGIN");