reiver / go-telnet

Package telnet provides TELNET and TELNETS client and server implementations, for the Go programming language, in a style similar to the "net/http" library that is part of the Go standard library, including support for "middleware"; TELNETS is secure TELNET, with the TELNET protocol over a secured TLS (or SSL) connection.
https://godoc.org/github.com/reiver/go-telnet
MIT License
266 stars 83 forks source link

Log IPs that connect to the telnet server #16

Open ghost opened 4 years ago

ghost commented 4 years ago

What is the best way to log IPs that connect to the telnet server. I've experimented with various ways but have been unable to do it so far. Here's a simple example.

package main

import ( "github.com/reiver/go-telnet" "log" )

var RBTHandler telnet.Handler = internalRBTHandler{}

type internalRBTHandler struct{}

func (handler internalRBTHandler) ServeTELNET(ctx telnet.Context, w telnet.Writer, r telnet.Reader) { // How do I log the remote ip here? log.Printf("%v\n", ctx) }

func main() { var handler telnet.Handler = RBTHandler //var logger telnet.Logger

server := &telnet.Server{
    Addr:    ":2323",
    Handler: handler,
    //Logger:  logger,
}

err := server.ListenAndServe()
if nil != err {
    panic(err)
}

}