finds and reports OS nameservers

Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
Jeff Carr 2024-01-07 07:34:12 -06:00
parent d1d5e15cca
commit 963f9e2155
2 changed files with 24 additions and 0 deletions

View File

@ -13,6 +13,7 @@ package linuxstatus
import (
"os"
"os/user"
"io/ioutil"
"strconv"
"strings"
"sort"
@ -66,6 +67,24 @@ func linuxLoop() {
me.uid.Set(tmp)
}
content, _ := ioutil.ReadFile("/etc/resolv.conf")
var ns []string
for _, line := range strings.Split(string(content), "\n") {
parts := strings.Split(line, " ")
if len(parts) > 1 {
if parts[0] == "nameserver" {
ns = append(ns, parts[1])
}
}
}
sort.Strings(ns)
newNS := strings.Join(ns, "\n")
if newNS != me.resolver.Get() {
log.Log(CHANGE, "resolver changed in /etc/resolv.conf to", ns)
me.changed = true
me.resolver.Set(newNS)
}
/*
processName := getProcessNameByPort(53)
fmt.Println("Process with port 53:", processName)

View File

@ -282,3 +282,8 @@ func (ls *LinuxStatus) GetIPv4() []string {
return strings.Split(tmp, "\n")
}
func (ls *LinuxStatus) GetNameservers() []string {
if ! me.Ready() {return nil}
tmp := me.resolver.Get()
return strings.Split(tmp, "\n")
}