RFC 1413 implementation
package main
import (
"fmt"
"github.com/asciimoth/ident"
"net"
)
func main() {
listener, err := net.Listen("tcp4", "127.0.0.1:8080")
if err != nil {
panic(err)
}
defer listener.Close()
for {
conn, err := listener.Accept()
if err != nil {
fmt.Println(err)
continue
}
_, lport, err := net.SplitHostPort(conn.LocalAddr().String())
if err != nil {
fmt.Println(err)
conn.Close()
continue
}
rhost, rport, err := net.SplitHostPort(conn.RemoteAddr().String())
if err != nil {
fmt.Println(err)
conn.Close()
continue
}
rhost = net.JoinHostPort(rhost, ident.DEFAULT_PORT)
resp, err := ident.Query(conn.RemoteAddr().Network(), rhost, rport, lport)
if err != nil {
fmt.Println(err)
conn.Close()
continue
}
fmt.Println("Connn from", conn.RemoteAddr(), resp)
conn.Close()
}
}Files in this repository are distributed under the CC0 license.

To the extent possible under law,
ASCIIMoth
has waived all copyright and related or neighboring rights to
ident.