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 + -
显示快捷键?