Сделайте чтоб в поле сид можно было указывать не только 1 ип или мак, но и диапазон ИПов например так. 192.168.150.0/24 Заранее благодарен, и надеюсь что изменения коснуться не только платную версию(хоть и собираемся покупать).
ЗЫ. Я бы комментарии к учетке перенес поближе к логину.
Диапазон ип в поле CID
-
- Site Admin
- Сообщения: 5746
- Зарегистрирован: Пт янв 28, 2005 3:11 pm
- Контактная информация:
Re: Диапазон ип в поле CID
можно указывать через запятую сиды или так не подходит ?
Re: Диапазон ип в поле CID
ну что через запятую это я знаю, но в некоторых случаях нужно именно пул.
-
- Site Admin
- Сообщения: 5746
- Зарегистрирован: Пт янв 28, 2005 3:11 pm
- Контактная информация:
Re: Диапазон ип в поле CID
под заказ сделаем 60 $
Re: Диапазон ип в поле CID
Да... $60 за всего-то смену в запросе к базе с in на in decode(...). Так жить можно было бы. Хотя какой decode, это же mysql.
-
- Site Admin
- Сообщения: 5746
- Зарегистрирован: Пт янв 28, 2005 3:11 pm
- Контактная информация:
Re: Диапазон ип в поле CID
никто не мешает на альтруизме сделать это, но как говорится говорить могут все
Re: Диапазон ип в поле CID
Примерно так:
Код: Выделить всё
--- abills/Abills/mysql/Auth.pm 2011-10-26 10:00:47.700901852 +0400
+++ std/abills/Abills/mysql/Auth.pm 2011-11-16 15:23:19.416328513 +0400
@@ -752,6 +752,21 @@
$self->query($db, "UPDATE dv_main SET cid='$RAD->{CALLING_STATION_ID}'
WHERE uid='$self->{UID}';", 'do');
}
+ ### by SmallFox
+ elsif( $CONF->{MAC_AUTO_ASSIGN} &&
+ $self->{CID} eq '' &&
+ $RAD->{CALLING_STATION_ID} &&
+ $RAD->{CALLING_STATION_ID} =~ /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/ && $RAD->{CALLING_STATION_ID} !~ /\//
+ ) {
+ my $sid;
+ if ($CONF->{NET_AUTO_ASSIGN}) {
+ $sid=$RAD->{CALLING_STATION_ID}.'/24';
+
+ }
+ else {$sid=$RAD->{CALLING_STATION_ID};}
+ $self->query($db, "UPDATE dv_main SET cid='$sid' WHERE uid='$self->{UID}';", 'do');
+ }
+### SmallFox
# SET ACCOUNT expire date
if( $self->{ACCOUNT_AGE} > 0 && $self->{ACCOUNT_ACTIVATE} eq '0000-00-00') {
@@ -864,6 +879,22 @@
}
return 0 if ($counter eq '6');
}
+
+ ### by SmallFox 192.168.101.2/24
+ elsif($TEMP_CID =~ /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{2}/) {
+ $RAD->{CALLING_STATION_ID} =~ s/ //g;
+ my ($net_ip, $net_mask) = split(/\//, $TEMP_CID);
+ my ($ip1, $ip2, $ip3, $ip4) = split(/\./, $net_ip);
+ my $net_ip_raw = pack ('CCCC', $ip1, $ip2, $ip3, $ip4);
+ my $net_mask_raw = pack ('B32', (1 x $net_mask), (1 x (32 - $net_mask)));
+ ($ip1, $ip2, $ip3, $ip4) = split(/\./, $RAD->{CALLING_STATION_ID});
+ my $some_ip_raw = pack ('CCCC', $ip1, $ip2, $ip3, $ip4);
+ if (($some_ip_raw & $net_mask_raw) eq ($net_ip_raw& $net_mask_raw)){
+ return 0;
+ }
+ }
+ ### SmallFox
+
# If like MPD CID
# 192.168.101.2 / 00:0e:0c:4a:63:56
elsif($TEMP_CID =~ /\//) {
в config.pl:
#Auto assigning MAC in first connect
$conf{MAC_AUTO_ASSIGN}=1;
$conf{NET_AUTO_ASSIGN}=1; # kosta