//МЕТОД ПОЛУЧЕНИЯ НЕЗАНЯТЫХ АБОНЕНТОМ IP-АДРЕСОВ//ОЧЕНЬ БЫДЛОКОД!!!
$customer_internet_ip = array(); //Массив назначенных абоненту адресов, определенных под интернет $customer_ip = array(); //Массив назначенных абоненту адресов $customer_free_ip = array(); //Массив свободных адресов абонента
foreach ($data['uslugi'] as $usluga)
{
{
$tmp_arr = explode('-', $usluga['ip']); $customer_internet_ip[] = $tmp_arr[0];
$customer_internet_ip[] = $tmp_arr[1];
}
else
{
$customer_ip[] = $usluga['ip'];
}
}
$customer_ip_4octs = array(); $customer_subnet = "";
foreach ($customer_internet_ip as $ip)
{
$customer_ip_4octs[] = $tmp_ip[3];
$customer_subnet = $tmp_ip[0].'.'.$tmp_ip[1].'.'.$tmp_ip[2].'.';
}
$used_ip_4octs = array();
for ($i=$customer_ip_4octs[0]; $i <= $customer_ip_4octs[1] ; $i++)
{
$used_ip_4octs[] = $i;
}
foreach ($used_ip_4octs as $ip)
{
$customer_ip[] = $customer_subnet.$ip;
}
$ip_count = 0;
$podset = substr($podset_customer[0]['podset'], -2);
if ($podset == 30)
$ip_count = 4;
if ($podset == 29)
$ip_count = 8;
if ($podset == 28)
$ip_count = 16;
if ($podset == 27)
$ip_count = 32;
for ($i=0; $i < $ip_count ; $i++)
{
$tmp_ip = min($used_ip_4octs); $tmp_ip += $i;
$customer_free_ip[] = $customer_subnet.$tmp_ip;
}
$availavle_ip = array_diff($customer_free_ip, $customer_ip); $data['free_ip'] = $availavle_ip;
Ly/QnNCV0KLQntCUINCf0J7Qm9Cj0KfQldCd0JjQryDQndCV0JfQkNCd0K/QotCr0KUg0JDQkdCe0J3QldCd0KLQntCcIElQLdCQ0JTQoNCV0KHQntCSLy/QntCn0JXQndCsINCR0KvQlNCb0J7QmtCe0JQhISEKJGN1c3RvbWVyX2ludGVybmV0X2lwID0gYXJyYXkoKTsgLy/QnNCw0YHRgdC40LIg0L3QsNC30L3QsNGH0LXQvdC90YvRhSDQsNCx0L7QvdC10L3RgtGDINCw0LTRgNC10YHQvtCyLCDQvtC/0YDQtdC00LXQu9C10L3QvdGL0YUg0L/QvtC0INC40L3RgtC10YDQvdC10YIKJGN1c3RvbWVyX2lwID0gYXJyYXkoKTsgLy/QnNCw0YHRgdC40LIg0L3QsNC30L3QsNGH0LXQvdC90YvRhSDQsNCx0L7QvdC10L3RgtGDINCw0LTRgNC10YHQvtCyCiRjdXN0b21lcl9mcmVlX2lwID0gYXJyYXkoKTsgLy/QnNCw0YHRgdC40LIg0YHQstC+0LHQvtC00L3Ri9GFINCw0LTRgNC10YHQvtCyINCw0LHQvtC90LXQvdGC0LAKCmZvcmVhY2ggKCRkYXRhWyd1c2x1Z2knXSBhcyAkdXNsdWdhKSAKewogICAgaWYgKHN0cmlzdHIoJHVzbHVnYVsnaXAnXSwgJy0nKSkgCiAgICB7CiAgICAgICAgJHRtcF9hcnIgPSBhcnJheSgpOwogICAgICAgICR0bXBfYXJyID0gZXhwbG9kZSgnLScsICR1c2x1Z2FbJ2lwJ10pOwogICAgICAgICRjdXN0b21lcl9pbnRlcm5ldF9pcFtdID0gJHRtcF9hcnJbMF07CiAgICAgICAgJGN1c3RvbWVyX2ludGVybmV0X2lwW10gPSAkdG1wX2FyclsxXTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgICAkY3VzdG9tZXJfaXBbXSA9ICR1c2x1Z2FbJ2lwJ107CiAgICB9Cn0KCiRjdXN0b21lcl9pcF80b2N0cyA9IGFycmF5KCk7CiRjdXN0b21lcl9zdWJuZXQgPSAiIjsKZm9yZWFjaCAoJGN1c3RvbWVyX2ludGVybmV0X2lwIGFzICRpcCkgCnsKICAgICR0bXBfaXAgPSBleHBsb2RlKCcuJywgJGlwKTsKICAgICRjdXN0b21lcl9pcF80b2N0c1tdID0gJHRtcF9pcFszXTsKICAgICRjdXN0b21lcl9zdWJuZXQgPSAkdG1wX2lwWzBdLicuJy4kdG1wX2lwWzFdLicuJy4kdG1wX2lwWzJdLicuJzsKfQoKJHVzZWRfaXBfNG9jdHMgPSBhcnJheSgpOwoKZm9yICgkaT0kY3VzdG9tZXJfaXBfNG9jdHNbMF07ICRpIDw9ICRjdXN0b21lcl9pcF80b2N0c1sxXSA7ICRpKyspIAp7IAogICAgJHVzZWRfaXBfNG9jdHNbXSA9ICRpOwp9Cgpmb3JlYWNoICgkdXNlZF9pcF80b2N0cyBhcyAkaXApIAp7CiAgICAkY3VzdG9tZXJfaXBbXSA9ICRjdXN0b21lcl9zdWJuZXQuJGlwOwp9CgokaXBfY291bnQgPSAwOwokcG9kc2V0ID0gc3Vic3RyKCRwb2RzZXRfY3VzdG9tZXJbMF1bJ3BvZHNldCddLCAtMik7CgppZiAoJHBvZHNldCA9PSAzMCkKICAgICRpcF9jb3VudCA9IDQ7CmlmICgkcG9kc2V0ID09IDI5KQogICAgJGlwX2NvdW50ID0gODsKaWYgKCRwb2RzZXQgPT0gMjgpCiAgICAkaXBfY291bnQgPSAxNjsKaWYgKCRwb2RzZXQgPT0gMjcpCiAgICAkaXBfY291bnQgPSAzMjsKCmZvciAoJGk9MDsgJGkgPCAkaXBfY291bnQgOyAkaSsrKSAKeyAKICAgICR0bXBfaXAgPSBtaW4oJHVzZWRfaXBfNG9jdHMpOwogICAgJHRtcF9pcCArPSAkaTsKICAgICRjdXN0b21lcl9mcmVlX2lwW10gPSAkY3VzdG9tZXJfc3VibmV0LiR0bXBfaXA7Cn0KCiRhdmFpbGF2bGVfaXAgPSBhcnJheV9kaWZmKCRjdXN0b21lcl9mcmVlX2lwLCAkY3VzdG9tZXJfaXApOwokZGF0YVsnZnJlZV9pcCddID0gJGF2YWlsYXZsZV9pcDs=
//МЕТОД ПОЛУЧЕНИЯ НЕЗАНЯТЫХ АБОНЕНТОМ IP-АДРЕСОВ//ОЧЕНЬ БЫДЛОКОД!!!
$customer_internet_ip = array(); //Массив назначенных абоненту адресов, определенных под интернет
$customer_ip = array(); //Массив назначенных абоненту адресов
$customer_free_ip = array(); //Массив свободных адресов абонента
foreach ($data['uslugi'] as $usluga)
{
if (stristr($usluga['ip'], '-'))
{
$tmp_arr = array();
$tmp_arr = explode('-', $usluga['ip']);
$customer_internet_ip[] = $tmp_arr[0];
$customer_internet_ip[] = $tmp_arr[1];
}
else
{
$customer_ip[] = $usluga['ip'];
}
}
$customer_ip_4octs = array();
$customer_subnet = "";
foreach ($customer_internet_ip as $ip)
{
$tmp_ip = explode('.', $ip);
$customer_ip_4octs[] = $tmp_ip[3];
$customer_subnet = $tmp_ip[0].'.'.$tmp_ip[1].'.'.$tmp_ip[2].'.';
}
$used_ip_4octs = array();
for ($i=$customer_ip_4octs[0]; $i <= $customer_ip_4octs[1] ; $i++)
{
$used_ip_4octs[] = $i;
}
foreach ($used_ip_4octs as $ip)
{
$customer_ip[] = $customer_subnet.$ip;
}
$ip_count = 0;
$podset = substr($podset_customer[0]['podset'], -2);
if ($podset == 30)
$ip_count = 4;
if ($podset == 29)
$ip_count = 8;
if ($podset == 28)
$ip_count = 16;
if ($podset == 27)
$ip_count = 32;
for ($i=0; $i < $ip_count ; $i++)
{
$tmp_ip = min($used_ip_4octs);
$tmp_ip += $i;
$customer_free_ip[] = $customer_subnet.$tmp_ip;
}
$availavle_ip = array_diff($customer_free_ip, $customer_ip);
$data['free_ip'] = $availavle_ip;