From 9047cf4dd35e5605327a059183d36d3e3971141b Mon Sep 17 00:00:00 2001 From: Russ Magee Date: Wed, 27 Jun 2018 19:08:56 -0700 Subject: [PATCH] GetHost() API --- goutmp.go | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/goutmp.go b/goutmp.go index 966f273..1a463be 100644 --- a/goutmp.go +++ b/goutmp.go @@ -79,9 +79,11 @@ package goutmp import "C" import ( - "fmt" - "os/user" - "time" + "fmt" + "net" + "os/user" + "strings" + "time" ) // UtmpEntry wraps the C struct utmpx @@ -89,6 +91,19 @@ type UtmpEntry struct { entry C.struct_utmpx } +// return remote client hostname or IP if host lookup fails +func GetHost(addr string) (h string) { + // Strip off the port after IP addr + hList, e := net.LookupAddr(strings.Split(addr,":")[0]) + fmt.Printf("lookupAddr:%v\n", hList) + if e != nil { + h = strings.Split(addr,":")[0] + } else { + h = hList[0] + } + return +} + // Put a username and the originating host/IP to utmp func Put_utmp(user string, host string) (UtmpEntry) { var entry UtmpEntry