z/pkg/helper/helper.go
Zeev Diukman 96ba425ae9 order1
2024-09-10 13:35:53 +00:00

59 lines
1.3 KiB
Go

package helper
import (
"fmt"
"log"
"net"
"net/http"
"runtime"
"strings"
"github.com/gookit/goutil/dump"
)
func IsIPAddr(ip string) bool {
ipaddr := net.ParseIP(NormaliseIPAddr(ip))
return ipaddr != nil
}
func NormaliseIPAddr(ip string) string {
if strings.HasSuffix(ip, "/32") && strings.Contains(ip, ".") { // single host (IPv4)
ip = strings.TrimSuffix(ip, "/32")
} else {
ip = strings.TrimSuffix(ip, "/128") // single host (IPv6)
}
return ip
}
// fqdn format to domain format
func FtoD(fqdn string) string {
return strings.TrimSuffix(fqdn, ".")
}
func StartHTTP() {
log.Printf("Starting HTTP at :80")
http.ListenAndServe(":80", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "80 OK")
}))
}
func P2(input ...any) {
dump.Print(input...)
}
func P(input ...any) {
fmt.Println(input...)
}
func PrintOldStyleMetrics() {
runtime.GOMAXPROCS(4)
fmt.Printf("Operating system is: %s\n", runtime.GOOS)
// Get number of go routines, max os threads allocated to process and host number of cpus
numGoroutines := runtime.NumGoroutine()
fmt.Printf("The program is using %d go routines\n", numGoroutines)
maxThreads := runtime.GOMAXPROCS(0)
fmt.Printf("The program is configured to %d max threads ", maxThreads)
numCPUs := runtime.NumCPU()
fmt.Printf("- the host has %d cpus", numCPUs)
}