Перейти к содержимому

moodperson

Маглы
  • Публикации

    1
  • Зарегистрирован

  • Посещение

Все публикации пользователя moodperson

  1. moodperson

    Stargazer+dhcpd

    #!/usr/bin/perl -w use DBI; use strict; my $db_user = "stg"; my $db_pass = ""; my $db_host = "localhost"; my $db_name = "stargazer"; my $dhcp_conf = "/usr/local/etc/dhcpd.conf"; # where dhcp.conf ? my $dhcp_rc = "/usr/local/etc/rc.d/isc-dhcpd"; # where dhcp init script? my $dsn = "DBI:mysql:$db_name:$db_host"; my $conf = "default-lease-time 600; max-lease-time 7200; authoritative; ddns-update-style interim; log-facility local7; subnet 10.10.2.0 netmask 255.255.255.0 { range 10.10.2.10 10.10.2.100; option routers 10.10.2.1; option domain-name-servers 10.10.1.1; } subnet 10.10.3.0 netmask 255.255.255.0 { range 10.10.3.1 10.10.3.100; option routers 10.10.3.1; option domain-name-servers 10.10.1.1; } subnet 10.10.4.0 netmask 255.255.255.0 { range 10.10.4.1 10.10.4.100; option routers 10.10.4.1; option domain-name-servers 10.10.1.1; } subnet 10.10.5.0 netmask 255.255.255.0 { range 10.10.5.1 10.10.5.100; option routers 10.10.6.1; option domain-name-servers 10.10.1.1; } subnet 10.10.7.0 netmask 255.255.255.0 { range 10.10.7.1 10.10.7.100; option routers 10.10.7.1; option domain-name-servers 10.10.1.1; } "; my $dbh = DBI->connect($dsn, $db_user, $db_pass) || die "Could not connect to database: $DBI::errstr"; my $sql = "SELECT IP, Userdata0, Userdata1, login FROM users"; my $sth = $dbh->prepare($sql); $sth->execute(); my @row; while ( @row = $sth->fetchrow_array() ) { if ( $row[1] ne "" && $row[2] ne "" ) { $conf = join "", $conf, " host $row[3].local { hardware ethernet $row[1]; fixed-address $row[0]; option routers $row[2]; } " ; } } $sth->finish(); $dbh->disconnect(); open(DHCP, "> $dhcp_conf"); print DHCP $conf; close DHCP; my @args = ("$dhcp_rc", "restart"); system(@args) == 0 or die "system @args failed: $?";
×
×
  • Создать...