From 7ec9cd4919fe48da48dcca53acd5a758c6ab4c0f Mon Sep 17 00:00:00 2001 From: jbergner Date: Fri, 9 May 2025 10:06:40 +0200 Subject: [PATCH] =?UTF-8?q?DHCP=20Unterst=C3=BCtzung=20implementiert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.go | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/main.go b/main.go index 7ade392..68752f0 100644 --- a/main.go +++ b/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 = ` {{if .HaveResult}} - - {{range .Rows}}{{end}} + + {{range .Rows}}{{end}}
IPv4IPv6
{{.IPv4}}{{.IPv6}}
IPv4IPv6DHCP-IPv4DHCP-IPv6
{{.IPv4}}{{.IPv6}}netsh DHCP Server %s Scope %s Add reservedip {{.IPv4}} "{{.Name}}.stadt-hilden.de" "" "DHCP"---
{{end}} {{if .Error}}

Fehler: {{.Error}}

{{end}} -

Aktives Präfix: %s (/96)

`