#!/usr/bin/perl -w # # Script zur automatischen Konfiguration von DHCP-Servern. # (c) Bernd Burre 2002 # jegliche Nutzung erfolgt auf eigenes Risiko # weitere Informationen unter http://www.linux-hamburg.de # # den Servernamen bestimmen open RC, "/etc/rc.config"; while () { if ( /^FQHOSTNAME=(.*)/) { $SERVERNAME="$1"; $SERVERNAME =~ s/"//g; } } close(RC); $SERVERNAME =~ m/^([^\.]+)\.(.*$)/; $DOMAIN=$2; # # Sicherheitsabfrage, der Ausdruck "dummy" darf nicht # im Domainteil enthalten sein if ( $DOMAIN =~ /dummy/ ) { die "Das Netzwerk wurde nicht konfiguriert\n"; } # Die Serverip und die Netzip bestimmen # $SERVIP=gethostbyname($SERVERNAME); ($IP1,$IP2,$IP3,$IP4)=unpack('C4',$SERVIP); $NETIP="$IP1.$IP2.$IP3"; $SERVERIP="$NETIP.$IP4"; $NETIP="$IP1.$IP2"; # sub dhcp_conf_erzeugen { print FILE "option domain-name \"$DOMAIN\";\n"; print FILE "option domain-name-servers $SERVERIP;\n"; print FILE "option netbios-name-servers $SERVERIP;\n"; print FILE "option subnet-mask 255.255.255.0;\n"; print FILE "ddns-update-style ad-hoc;\n"; print FILE "default-lease-time 1209600;\n"; print FILE "max-lease-time 12096000;\n" ; print FILE "# dynamic-bootp-lease-length 86400;\n"; print FILE "subnet $NETIP.$IP3.0 netmask 255.255.255.0 {\n"; print FILE " range $NETIP.$IP3.40 $NETIP.$IP3.160;\n"; print FILE "# range dynamic-bootp $NETIP.$IP3.100 $NETIP.$IP3.160;\n"; print FILE " option routers $SERVERIP;\n"; print FILE "}\n"; }; open FILE, "> /etc/dhcpd.conf"; dhcp_conf_erzeugen; close (FILE); exit 0;