DHCP Unterstützung implementiert
All checks were successful
release-tag / release-image (push) Successful in 1m53s
All checks were successful
release-tag / release-image (push) Successful in 1m53s
This commit is contained in:
24
main.go
24
main.go
@@ -47,6 +47,8 @@ var (
|
||||
rangeLimit int
|
||||
singleTemplate *template.Template
|
||||
rangeTemplate *template.Template
|
||||
dhcpServer string
|
||||
dhcpScope string
|
||||
)
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
@@ -57,7 +59,7 @@ type singleData struct {
|
||||
HaveResult bool
|
||||
}
|
||||
|
||||
type addrPair struct{ IPv4, IPv6 string }
|
||||
type addrPair struct{ Name, IPv4, IPv6 string }
|
||||
|
||||
type rangeData struct {
|
||||
Start, End string
|
||||
@@ -129,6 +131,16 @@ func handleRange(w http.ResponseWriter, r *http.Request) {
|
||||
d.HaveResult = true
|
||||
d.Rows = rows
|
||||
}
|
||||
for a, b := range rows {
|
||||
fmt.Println(a, b)
|
||||
octets := strings.Split(b.IPv4, ".")
|
||||
if len(octets) != 4 {
|
||||
fmt.Println("Ungültige IP-Adresse!")
|
||||
return
|
||||
}
|
||||
N := "PC" + octets[2] + octets[3]
|
||||
d.Rows = append(d.Rows, addrPair{IPv4: b.IPv4, IPv6: b.IPv6, Name: N})
|
||||
}
|
||||
renderRange(w, d)
|
||||
default:
|
||||
http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
|
||||
@@ -214,6 +226,9 @@ func initConfigAndTemplates() {
|
||||
pageIP = defaultIP
|
||||
}
|
||||
|
||||
dhcpScope = os.Getenv("DHCP_SERVER")
|
||||
dhcpServer = os.Getenv("DHCP_SCOPE")
|
||||
|
||||
// Range limit ---------------------------------
|
||||
if limStr := os.Getenv("RANGE_LIMIT"); limStr != "" {
|
||||
if v, err := strconv.Atoi(limStr); err == nil && v > 0 {
|
||||
@@ -227,7 +242,7 @@ func initConfigAndTemplates() {
|
||||
|
||||
// Templates -----------------------------------
|
||||
singleHTML := fmt.Sprintf(singlePageHTML, pageIP, ulaPrefix)
|
||||
rangeHTML := fmt.Sprintf(rangePageHTML, ulaPrefix)
|
||||
rangeHTML := fmt.Sprintf(rangePageHTML, dhcpServer, dhcpScope)
|
||||
singleTemplate = template.Must(template.New("single").Parse(singleHTML))
|
||||
rangeTemplate = template.Must(template.New("range").Parse(rangeHTML))
|
||||
}
|
||||
@@ -307,10 +322,9 @@ var rangePageHTML = `<!DOCTYPE html>
|
||||
</form>
|
||||
{{if .HaveResult}}
|
||||
<table>
|
||||
<tr><th>IPv4</th><th>IPv6</th></tr>
|
||||
{{range .Rows}}<tr><td>{{.IPv4}}</td><td>{{.IPv6}}</td></tr>{{end}}
|
||||
<tr><th>IPv4</th><th>IPv6</th><th>DHCP-IPv4</th><th>DHCP-IPv6</th></tr>
|
||||
{{range .Rows}}<tr><td>{{.IPv4}}</td><td>{{.IPv6}}</td><td>netsh DHCP Server %s Scope %s Add reservedip {{.IPv4}} "{{.Name}}.stadt-hilden.de" "" "DHCP"</td><td>---</td></tr>{{end}}
|
||||
</table>
|
||||
{{end}}
|
||||
{{if .Error}}<p style="color:#b00">Fehler: {{.Error}}</p>{{end}}
|
||||
<p style="margin-top:1rem">Aktives Präfix: <code>%s</code> (/96)</p>
|
||||
</body></html>`
|
||||
|
Reference in New Issue
Block a user