* It can not connect to other servers. Just standalone installation
* It has few basic IRC commands
* There is no support for channel operators, modes, votes, invites
-* No ident lookups, reverse DNS queries
+* No ident lookups
But it has some convincing features:
sync.Mutex
}
+func (c Client) Host() string {
+ addr := c.conn.RemoteAddr().String()
+ if host, _, err := net.SplitHostPort(addr); err == nil {
+ addr = host
+ }
+ if domains, err := net.LookupAddr(addr); err == nil {
+ addr = strings.TrimSuffix(domains[0], ".")
+ }
+ return addr
+}
+
func (c Client) String() string {
- return *c.nickname + "!" + *c.username + "@" + c.conn.RemoteAddr().String()
+ return *c.nickname + "!" + *c.username + "@" + c.Host()
}
func NewClient(conn net.Conn) *Client {