bootptodhcp.pl

来自「linux下从网卡远程启动」· PL 代码 · 共 43 行

PL
43
字号
#!/usr/bin/perl -w## Quick hack to convert /etc/bootptab to format required by ISC DHCPD# This only outputs the fixed hosts portion of the config file# You still have to provide the global options and the subnet scoping## Turn $useipaddr on if you prefer to use IP addresses in the config file# I run DNS so I prefer domain names$useipaddr = 0;# This will be appended to get the FQDN unless the hostname is already FQDN$domainname = "ken.com.au";$tftpdir = "/tftpdir/";open(B, "/etc/bootptab") or die "/etc/bootptab: $!\n";while(<B>) {	if (/^[^a-z]/) {		$prevline = $_;		next;	}	chomp($_);	($hostname, @tags) = split(/:/, $_, 5);	($fqdn = $hostname) .= ".$domainname" unless($hostname =~ /\./);	($macaddr) = grep(/^ha=/, @tags);	$macaddr =~ s/ha=//;	$macaddr =~ s/(..)(..)(..)(..)(..)(..)/$1:$2:$3:$4:$5:$6/g;	($ipaddr) = grep(/^ip=/, @tags);	$ipaddr =~ s/ip=//;	($bootfile) = grep(/^bf=/, @tags);	$bootfile =~ s/bf=//;	$bootfile = $tftpdir . $bootfile;# I have a comment line above most entries and I like to carry this over	print $prevline if ($prevline =~ /^#/);	$address = $useipaddr ? $ipaddr : $fqdn;	print <<EOF	host $hostname {		hardware ethernet $macaddr;		fixed-address $address;		filename "$bootfile";	}EOF;	$prevline = $_;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?