{{tag>protocol software internet chatrooms privacy}} ====== IRC ====== **IRC** is an protocol commonly used on the [[internet]] that facilitates a text-based [[online chat|chatroom]] environment. Typically, port ''6697'' is used with SSL, but historically IRC was a plaintext protocol using port ''6667''. ===== Clients ===== * [[Weechat]] * [[KVIrc]] ===== Design ===== ==== Networks ==== IRC is designed to be a federated protocol, meaning that an IRC **network** can be accessible from various different official servers. This federated model can protect from network downtime, due to the lack of a single point of failure, as well as promote diplomacy among the network administration. ==== Channels ==== Servers are grouped into channels. Channels start with a pound ''#'' symbol and can have various different modes set, represented by a string of flags. They can also have a topic, which is a string that is intended to represent the current topic of conversation, but nowadays is used more like a description for the channel. ==== Users ==== A user has four identifying attributes: * ''nickname'' How you will be seen in chat and user lists. Only ASCII. No spaces. * ''realname'' Optional field that supports spaces and unusual characters. * ''ident/username'' For SASL. * ''password'' (not shown to other clients) Additionally, there is the user's IP and host, but those are not client defined. The IP is only seen by the server; but the host is shown to other clients. Usually the host is an rdns lookup of the client IP, a cloaked (hashed) version of the user's IP, or customized by the user after registering to preserve their [[anonymity]]. ===== IRC client commands ===== Here are some commands broadly implemented by IRC clients. *''/join '' Subscribes you to a channel. *''/part'' Leaves a channel and incurs a ''part'' message defined by your client. *''/whois '' Queries info about another person in the same channel.