2020-02-29 19:30:28 +01:00
< ? php ob_start () ?>
< ? php if ( ! RASPI_MONITOR_ENABLED ) : ?>
< input type = " submit " class = " btn btn-outline btn-primary " value = " <?php echo _( " Save settings " ); ?> " name = " savedhcpdsettings " />
< ? php if ( $dnsmasq_state ) : ?>
< input type = " submit " class = " btn btn-warning " value = " <?php echo _( " Stop dnsmasq " ) ?> " name = " stopdhcpd " />
< ? php else : ?>
< input type = " submit " class = " btn btn-success " value = " <?php echo _( " Start dnsmasq " ) ?> " name = " startdhcpd " />
< ? php endif ?>
< ? php endif ?>
< ? php $buttons = ob_get_clean (); ob_end_clean () ?>
2019-08-19 01:28:01 +02:00
< div class = " row " >
2020-03-06 16:26:23 +01:00
< div class = " col-lg-12 " >
< div class = " card " >
2019-08-19 01:28:01 +02:00
2020-03-06 16:26:23 +01:00
< div class = " card-header " >
< div class = " row " >
< div class = " col " >
< i class = " fas fa-exchange-alt mr-2 " ></ i >< ? php echo _ ( " DHCP Server " ); ?>
</ div >
< div class = " col " >
< button class = " btn btn-light btn-icon-split btn-sm service-status float-right " >
< span class = " icon text-gray-600 " >< i class = " fas fa-circle service-status-<?php echo $serviceStatus ?> " ></ i ></ span >
< span class = " text service-status " > dnsmasq < ? php echo _ ( $serviceStatus ) ?> </span>
</ button >
</ div >
</ div ><!-- /. row -->
</ div ><!-- /. card - header -->
2019-08-19 01:28:01 +02:00
2020-03-06 16:26:23 +01:00
< div class = " card-body " >
< ? php $status -> showMessages (); ?>
< form method = " POST " action = " ?page=dhcpd_conf " class = " js-dhcp-settings-form " >
< ? php echo CSRFTokenFieldTag () ?>
2019-10-15 00:18:39 +02:00
2020-03-06 16:26:23 +01:00
<!-- Nav tabs -->
2020-03-06 16:39:24 +01:00
< ul class = " nav nav-tabs mb-3 " >
2020-03-06 16:26:23 +01:00
< li class = " nav-item " >< a class = " nav-link active " href = " #server-settings " data - toggle = " tab " >< ? php echo _ ( " Server settings " ); ?> </a></li>
< li class = " nav-item " >< a class = " nav-link " href = " #advanced " data - toggle = " tab " >< ? php echo _ ( " Advanced " ); ?> </a></li>
< li class = " nav-item " >< a class = " nav-link " href = " #static-leases " data - toggle = " tab " >< ? php echo _ ( " Static Leases " ) ?> </a></li>
< li class = " nav-item " >< a class = " nav-link " href = " #client-list " data - toggle = " tab " >< ? php echo _ ( " Client list " ); ?> </a></li>
< li class = " nav-item " >< a class = " nav-link " href = " #logfile-output " data - toggle = " tab " >< ? php echo _ ( " Logging " ); ?> </a></li>
</ ul >
<!-- Tab panes -->
2019-10-15 00:18:39 +02:00
2020-03-06 16:26:23 +01:00
< div class = " tab-content " >
2019-08-19 01:28:01 +02:00
2020-03-06 16:26:23 +01:00
< div class = " tab-pane active " id = " server-settings " >
< h4 class = " mt-3 " > DHCP server settings </ h4 >
< div class = " row " >
< div class = " form-group col-md-6 " >
< label for = " code " > Interface </ label >
< select class = " form-control " name = " interface " >
< ? php foreach ( $interfaces as $if ) : ?>
< ? php $if_quoted = htmlspecialchars ( $if , ENT_QUOTES ) ?>
< ? php $selected = $if === $conf [ 'interface' ] ? ' selected="selected"' : '' ?>
< option value = " <?php echo $if_quoted ?> " < ? php echo $selected ?> ><?php echo $if_quoted ?></option>
< ? php endforeach ?>
</ select >
</ div >
</ div >
< div class = " row " >
< div class = " form-group col-md-6 " >
< label for = " code " >< ? php echo _ ( " Starting IP Address " ); ?> </label>
< input type = " text " class = " form-control " name = " RangeStart " value = " <?php echo htmlspecialchars( $RangeStart , ENT_QUOTES); ?> " />
</ div >
</ div >
2020-02-29 19:19:15 +01:00
2020-03-06 16:26:23 +01:00
< div class = " row " >
< div class = " form-group col-md-6 " >
< label for = " code " >< ? php echo _ ( " Ending IP Address " ); ?> </label>
< input type = " text " class = " form-control " name = " RangeEnd " value = " <?php echo htmlspecialchars( $RangeEnd , ENT_QUOTES); ?> " />
</ div >
</ div >
2020-02-29 19:19:15 +01:00
2020-03-06 16:26:23 +01:00
< div class = " row " >
< div class = " form-group col-xs-3 col-sm-3 " >
< label for = " code " >< ? php echo _ ( " Lease Time " ); ?> </label>
< input type = " text " class = " form-control " name = " RangeLeaseTime " value = " <?php echo htmlspecialchars( $arrRangeLeaseTime[1] , ENT_QUOTES); ?> " />
</ div >
< div class = " col-xs-3 col-sm-3 " >
< label for = " code " >< ? php echo _ ( " Interval " ); ?> </label>
< select name = " RangeLeaseTimeUnits " class = " form-control " >
< option value = " m " < ? php echo $mselected ; ?> ><?php echo _("Minute(s)"); ?></option>
< option value = " h " < ? php echo $hselected ; ?> ><?php echo _("Hour(s)"); ?></option>
< option value = " d " < ? php echo $dselected ; ?> ><?php echo _("Day(s)"); ?></option>
< option value = " infinite " < ? php echo $infiniteselected ; ?> ><?php echo _("Infinite"); ?></option>
</ select >
</ div >
</ div >
2020-02-29 19:19:15 +01:00
2020-03-06 16:26:23 +01:00
< div class = " row " >
< div class = " form-group col-md-6 " >
< label for = " code " >< ? php echo _ ( " DNS Server " ); ?> 1</label>
< input type = " text " class = " form-control " name = " DNS1 " value = " <?php echo htmlspecialchars( $DNS1 , ENT_QUOTES); ?> " />
2020-02-29 19:19:15 +01:00
</ div >
</ div >
2020-02-29 18:33:51 +01:00
2020-03-06 16:26:23 +01:00
< div class = " row " >
< div class = " form-group col-md-6 " >
< label for = " code " >< ? php echo _ ( " DNS Server " ); ?> 2</label>
< input type = " text " class = " form-control " name = " DNS2 " value = " <?php echo htmlspecialchars( $DNS2 , ENT_QUOTES); ?> " />
</ div >
2020-02-28 23:37:52 +01:00
</ div >
2020-03-06 16:26:23 +01:00
</ div ><!-- /. tab - pane -->
2020-02-28 23:37:52 +01:00
2020-03-06 16:26:23 +01:00
<!-- advanced tab -->
< div class = " tab-pane " id = " advanced " >
2019-08-19 01:28:01 +02:00
2020-03-06 16:26:23 +01:00
< div class = " row " >
< div class = " col-md-6 " >
< h5 >< ? php echo _ ( " Upstream DNS servers " ) ?> </h5>
< div class = " input-group " >
< input type = " hidden " name = " no-resolv " value = " 0 " >
< div class = " custom-control custom-switch " >
< input class = " custom-control-input " id = " no-resolv " type = " checkbox " name = " no-resolv " value = " 1 " < ? php echo $conf [ 'no-resolv' ] ? ' checked="checked"' : " " ?> aria-describedby="no-resolv-description">
< label class = " custom-control-label " for = " no-resolv " >< ? php echo _ ( " Only ever query DNS servers configured below " ) ?> </label>
</ div >
< p id = " no-resolv-description " >
< small >< ? php echo _ ( " Enable this option if you want RaspAP to <b>send DNS queries to the servers configured below exclusively</b>. By default RaspAP also uses its upstream DHCP server's name servers. " ) ?> </small>
< br >< small class = " text-muted " >< ? php echo _ ( " This option adds <code>no-resolv</code> to the dnsmasq configuration. " ) ?> </small>
</ p >
</ div >
2019-08-19 01:28:01 +02:00
2020-03-06 16:26:23 +01:00
< div class = " js-dhcp-upstream-servers " >
< ? php foreach ( $upstreamServers as $server ) : ?>
< div class = " form-group input-group input-group-sm js-dhcp-upstream-server " >
< input type = " text " class = " form-control " name = " server[] " value = " <?php echo $server ?> " >
< div class = " input-group-append " >
< button class = " btn btn-outline-secondary js-remove-dhcp-upstream-server " type = " button " >< i class = " fas fa-minus " ></ i ></ button >
</ div >
</ div >
< ? php endforeach ?>
</ div >
2020-03-05 11:35:40 +01:00
2020-03-06 16:26:23 +01:00
< div class = " form-group " >
< label for = " add-dhcp-upstream-server-field " >< ? php echo _ ( " Add upstream DNS server " ) ?> </label>
< div class = " input-group " >
< input type = " text " class = " form-control " id = " add-dhcp-upstream-server-field " aria - describedby = " new-dhcp-upstream-server " placeholder = " <?php printf(_( " e . g . % s " ), " 208.67 . 222.222 " ) ?> " >
< div class = " input-group-append " >
< button type = " button " class = " btn btn-outline-secondary js-add-dhcp-upstream-server " >< i class = " fas fa-plus " ></ i ></ button >
</ div >
</ div >
< p id = " new-dhcp-upstream-server " class = " form-text text-muted " >
< small >
< ? php echo _ ( " Format: " ) ?>
< code class = " text-muted " >< ? php echo htmlspecialchars ( " [/[<domain>]/[domain/]][<ipaddr>[#<port>][@<source-ip>|<interface>[#<port>]] " ); ?> </code>
</ small >
</ p >
< select class = " custom-select custom-select-sm js-field-preset " data - field - preset - target = " #add-dhcp-upstream-server-field " >
< option value = " " >< ? php echo _ ( " Choose a hosted server " ) ?> </option>
< option disabled = " disabled " ></ option >
< ? php echo optionsForSelect ( dnsServers ()) ?>
</ select >
</ div >
</ div >
< template id = " dhcp-upstream-server " >
< div class = " form-group input-group input-group-sm js-dhcp-upstream-server " >
< input type = " text " class = " form-control " name = " server[] " value = " { { server }} " >
< div class = " input-group-append " >
< button class = " btn btn-outline-secondary js-remove-dhcp-upstream-server " type = " button " >< i class = " fas fa-minus " ></ i ></ button >
</ div >
</ div >
</ template >
</ div ><!-- /. row -->
</ div ><!-- /. tab - pane | advanded tab -->
< div class = " tab-pane fade " id = " client-list " >
< h4 class = " mt-3 mb-3 " > Client list </ h4 >
< div class = " row " >
< div class = " col-lg-12 " >
< div class = " card mb-3 " >
< div class = " card-header " >< ? php echo _ ( " Active DHCP leases " ); ?> </div>
<!-- /. panel - heading -->
< div class = " card-body " >
< div class = " table-responsive " >
< table class = " table table-hover " >
< thead >
< tr >
< th >< ? php echo _ ( " Expire time " ); ?> </th>
< th >< ? php echo _ ( " MAC Address " ); ?> </th>
< th >< ? php echo _ ( " IP Address " ); ?> </th>
< th >< ? php echo _ ( " Host name " ); ?> </th>
< th >< ? php echo _ ( " Client ID " ); ?> </th>
</ tr >
</ thead >
< tbody >
< ? php foreach ( $leases as $lease ) : ?>
< tr >
< ? php foreach ( explode ( ' ' , $lease ) as $prop ) : ?>
< td >< ? php echo htmlspecialchars ( $prop , ENT_QUOTES ) ?> </td>
< ? php endforeach ?>
</ tr >
< ? php endforeach ?>
</ tbody >
</ table >
</ div ><!-- /. table - responsive -->
</ div ><!-- /. card - body -->
</ div ><!-- /. card -->
</ div ><!-- /. col - lg - 12 -->
</ div ><!-- /. row -->
</ div ><!-- /. tab - pane -->
<!-- static leases tab -->
< div class = " tab-pane fade " id = " static-leases " >
< h4 class = " mt-3 mb-3 " >< ? php echo _ ( " Static leases " ) ?> </h4>
< div class = " dhcp-static-leases js-dhcp-static-lease-container " >
< ? php foreach ( $dhcpHost as $host ) : ?>
< ? php list ( $mac , $ip ) = array_map ( " trim " , explode ( " , " , $host )); ?>
< div class = " row dhcp-static-lease-row js-dhcp-static-lease-row " >
< div class = " col-md-5 col-xs-5 " >
< input type = " text " name = " static_leases[mac][] " value = " <?php echo htmlspecialchars( $mac , ENT_QUOTES) ?> " placeholder = " <?php echo _( " MAC address " ) ?> " class = " form-control " >
</ div >
< div class = " col-md-5 col-xs-4 " >
< input type = " text " name = " static_leases[ip][] " value = " <?php echo htmlspecialchars( $ip , ENT_QUOTES) ?> " placeholder = " <?php echo _( " IP address " ) ?> " class = " form-control " >
</ div >
< div class = " col-md-2 col-xs-3 " >
< button type = " button " class = " btn btn-danger js-remove-dhcp-static-lease " >< ? php echo _ ( " Remove " ) ?> </button>
</ div >
</ div >
< ? php endforeach ?>
</ div >
< h5 class = " mt-3 mb-3 " >< ? php echo _ ( " Add static DHCP lease " ) ?> </h5>
< div class = " row dhcp-static-lease-row js-new-dhcp-static-lease " >
< div class = " col-md-5 col-xs-5 " >
< input type = " text " name = " mac " value = " " placeholder = " <?php echo _( " MAC address " ) ?> " class = " form-control " autofocus = " autofocus " >
2020-01-27 07:39:16 +01:00
</ div >
< div class = " col-md-5 col-xs-4 " >
2020-03-06 16:26:23 +01:00
< input type = " text " name = " ip " value = " " placeholder = " <?php echo _( " IP address " ) ?> " class = " form-control " >
2020-01-27 07:39:16 +01:00
</ div >
< div class = " col-md-2 col-xs-3 " >
2020-03-06 16:26:23 +01:00
< button type = " button " class = " btn btn-success js-add-dhcp-static-lease " >< ? php echo _ ( " Add " ) ?> </button>
2020-01-27 07:39:16 +01:00
</ div >
2020-03-06 16:26:23 +01:00
</ div >
</ div ><!-- /. tab - pane -->
2020-01-27 07:39:16 +01:00
2020-03-06 16:26:23 +01:00
< template id = " js-dhcp-static-lease-row " >
< div class = " row dhcp-static-lease-row js-dhcp-static-lease-row " >
< div class = " col-md-5 col-xs-5 " >
< input type = " text " name = " static_leases[mac][] " value = " { { mac }} " placeholder = " <?php echo _( " MAC address " ) ?> " class = " form-control " >
</ div >
< div class = " col-md-5 col-xs-4 " >
< input type = " text " name = " static_leases[ip][] " value = " { { ip }} " placeholder = " <?php echo _( " IP address " ) ?> " class = " form-control " >
</ div >
< div class = " col-md-2 col-xs-3 " >
< button type = " button " class = " btn btn-warning js-remove-dhcp-static-lease " >< ? php echo _ ( " Remove " ) ?> </button>
</ div >
</ div >
</ template >
2019-08-19 01:28:01 +02:00
2020-03-06 16:26:23 +01:00
<!-- logfile output tab -->
< div class = " tab-pane fade " id = " logfile-output " >
2020-03-06 16:39:24 +01:00
< h4 >< ? php echo _ ( " Logging " ) ?> </h4>
< p >< ? php echo _ ( " Enable these options to log DHCP server activity. " ) ?> </p>
< div class = " custom-control custom-switch " >
< input class = " custom-control-input " id = " log-dhcp " type = " checkbox " name = " log-dhcp " value = " 1 " < ? php echo $conf [ 'log-dhcp' ] ? ' checked="checked"' : " " ?> aria-describedby="log-dhcp-requests">
< label class = " custom-control-label " for = " log-dhcp " >< ? php echo _ ( " Log DHCP requests " ) ?> </label>
</ div >
< div class = " custom-control custom-switch " >
< input class = " custom-control-input " id = " log-queries " type = " checkbox " name = " log-queries " value = " 1 " < ? php echo $conf [ 'log-queries' ] ? ' checked="checked"' : " " ?> aria-describedby="log-dhcp-queries">
< label class = " custom-control-label " for = " log-queries " >< ? php echo _ ( " Log DNS queries " ) ?> </label>
</ div >
< ? php
$log = file_get_contents ( '/tmp/dnsmasq.log' );
echo '<textarea class="logoutput my-3">' . htmlspecialchars ( $log , ENT_QUOTES ) . '</textarea>' ;
?>
2020-03-06 16:26:23 +01:00
</ div ><!-- /. tab - pane -->
2020-03-05 11:35:40 +01:00
2020-03-06 16:26:23 +01:00
</ div ><!-- /. tab - content -->
2020-03-05 11:35:40 +01:00
2020-03-06 16:26:23 +01:00
< ? php echo $buttons ?>
</ form >
</ div ><!-- ./ card - body -->
2020-02-29 19:30:28 +01:00
2020-03-06 16:26:23 +01:00
< div class = " card-footer " > < ? php echo _ ( " Information provided by Dnsmasq " ); ?> </div>
2019-08-19 01:28:01 +02:00
2020-03-06 16:26:23 +01:00
</ div ><!-- /. card -->
</ div ><!-- /. col - lg - 12 -->
2019-09-07 10:55:42 +02:00
</ div ><!-- /. row -->