Member of The Internet Defense League Últimos cambios
Últimos Cambios
Blog personal: El hilo del laberinto Geocaching

Comandos IRC Server

Última Actualización: 13 de Noviembre de 1.997 - Jueves

EN OBRAS!!! Hola a todos, amigos. Esta página está en obras y cambia constantemente. Disculpen las molestias.


A continuación se explica el funcionamiento de los comandos disponibles en la versión 2.9.32 del IRCd de Undernet, que es el utilizado en el IRC Hispano.

Para evitar duplicar esfuerzos, y dado que tengo poco tiempo, os remito al documento original IRC, el RFC1459. Sólo voy a explicar los comandos que no aparecen en ese texto. Los siguientes comandos son idénticos a los definidos en RFC1459.

  • ADMIN
  • AWAY
  • CONNECT
  • ERROR
  • INFO
  • INVITE
  • JOIN
  • KICK
  • KILL
  • LINKS
  • LIST
  • LUSERS
  • MOTD
  • NAMES
  • NOTICE
  • QUIT
  • OPER
  • PART
  • PASS
  • PING
  • PONG
  • SQUIT
  • SUMMON
  • TIME
  • TOPIC
  • USER
  • USERS
  • USERHOST
  • VERSION
  • WALLOPS
  • WHO
  • WHOIS
  • WHOWAS

Los comandos adicionales disponibles en la version 2.9.32 del IRCd de Undernet son (sintaxis deducida viendo el código):

CLOSE
Comando sólo para IRCops. Cierra todas las conexiones locales actualmente en modo "desconocido", "handshake" o "conectando". Por cada uno de ellos nos indica sus datos y, al final, el número total de conexiones cerradas.

DIE
Comando sólo para IRCops. Mata el proceso IRCd. Hay que arrancarlo a mano.

DNS [l]
No hay que confundir este comando con el equivalente de muchos clientes IRC. En el servidor este comando permite consultar la correspondencia DNS de cada conexión.

Con el parámetro "l" (ele) lista los datos de todas las conexiones, incluyendo IP, Nombre, TTL (Time To Live) y EX (Expiration).

Sin parámetros se listan una serie de datos que se explicarán con detalle en una versión futura de esta página.

GLINE [máscara [expire]]
Este comando permite la expulsión de usuarios y redes de forma global en toda la red de IRC, al estilo de las Klines del ircd.conf, pero de manera dinámica, global y con caducidad.

Sin parámetros, lista las glines actuales en nuestro servidor local.

Para los IRCops existe una variante. Si se indica una máscara de la forma

[+|-]user@host

se permite activar y desactivar Glines de forma puntual. Sólo se permiten activar y desactivar GLINES propagadas con anterioridad por otro IRCd con privilegios UWORLD.

Si se indica un número, especifica el número de segundos, desde ahora, que persistirá esa Gline. Ese cambio es exclusivamente local, y no se propaga por la red. Si el tiempo de caducidad indicado es cero, la gline se da de baja (de forma local).

El formato de propagación de Glines entre servidores queda para una futura versión de esta página.

HASH
Este comando sólo está disponible cuando se compilar el IRCd con la opción de depuración, e imprime datos sobre el funcionamiento de las funciones hash internas. En uns IRCd normal, se ignora.

HELP
Lista los comandos conocidos por este IRCd.

ISON nick...
Responde con un "ison: " y la lista de nicks indicados en el comando que están online en este momento. Útil para los "notify".

MAP [máscara]
Imprime un mapa gráfico de la red de IRC. Si se especifica una máscara, lista un mapa sólo con los hosts especificados.

NOTE
Este comando es muy curioso: simplemente se propaga en la red, pero no hace nada más. Si el que lo invoca es un servidor o un IRCop, admite comodines. Pero, de todas formas, el efecto es el mismo: ninguno salvo propagarse por toda la red. Supongo que es un proyecto de comando futuro. De hecho su compilación es condicional.

REHASH
Comando sólo accesible para IRCops. Hace que el IRCd lea de nuevo el ircd.conf.

RESTART
Comando sólo accesible para IRCops. Reinicia el IRCd, igual que si se matase y se volviese a lanzar.

RPING <servidor> [servidor inicial] [tiempo inicial en segundos [tiempo inicial en microsegundos]]
RPING <servidor> <quien lo manda> [tiempo inicial en segundos [tiempo inicial en microsegundos]]
Hace un ping entre nosotros y un servidor, o entre dos servidores. Sólo para IRCops o nodos.

RPONG <quien hizo el ping> <Máquina "pingueada"> <tiempo ping en milisegundos> [info]
RPONG <servidor desde el que se hizo el rping> <quien hizo el ping> <tiempo ping en milisegundos> [info]
Devuelve un rping.

SETTIME <segundos> [servidor]
Pone el concepto de tiempo del IRCd en ese instante. Se necesita ser IRCop o un nodo para poder hacerlo.

SILENCE [nick]
SILENCE <máscara>
SILENCE <nick> <máscara>
Este comando permite "silenciar" un usuario, de cara a otro usuario concreto.

Sin parámetros, lista nuestra tabla silence actual. Si se indica un nick lista la tabla silence especificada.

Las máscaras son de la forma habitual:

[+|-]nick!user@host

Si no se indica nada o un "+", la máscara es añadida a la lista. Con un "-", se borra. La máscara es bastante inteligente. Si se pone "texto", lo tomará como "+texto!*@*", considerando "texto" como un nick; si pones "!texto", lo toma como "+*!texto@*", etc. ¿Qué diferencia hay entre un silence de servidor IRC y un ignore de nuestro cliente IRC?

  1. Los silence sólo persisten para la sesión en curso.

  2. Los silence no se eliminan hasta que se lo decimos al servidor.

  3. Los silence no suponen un ignore en el server. Sólo suponen que los mensajes y comandos personales que nos envíe esa persona son descartados por la propia red IRC. No obstante lo que se envíe de forma pública en un canal, por ejemplo, sigue siendo visible para nosotros. Ello permite eliminar un flooding que nos hace alguien en concreto, pero manteniendo el contacto con él a través de un canal abierto. Esta distinción respecto al ignore es muy importante.

  4. Por otra parte, el silence se propaga a través de la red de IRC, cortando el envío de mensajes y comandos personales desde la propia fuente. Es decir, con un ignore el ataque debe viajar por toda la red de IRC y llegar hasta nuestro cliente para que éste simplemente lo descarte. Con un silence será el propio servidor al que conecta el atacante el que descarte sus mensajes, evitando la saturación en la red y en el modem del pobre usuario que lo está padeciendo.

La tercera sintaxis se emplea entre servidores.

STATS <letra> [servidor]
El comando STATS se describe con detenimiento en el enlace indicado.

TRACE [nick] [servidor]
Sin parámetros, lista las conexiones al servidor local (si no somos IRCop, no lista los usuarios invisibles). El formato es:

  • Tipo de conexión
    • Serv: Otro nodo de la red
    • User: Un usuario normal
    • Oper: Un IRCop
    • H.S.: Handshake inicial con otro servidor
    • ????: Una conexión todavía no declarada.
  • Clase de la conexión
  • Si es un servidor, indica el número de servidores y el número de conexiones en total que "introduce" ese servidor, su nombre, su IP y quien creó ese enlace.
  • En otro caso indica el nick y la IP.
  • Tiempo de inactividad.
  • Al final lista el número de conexiones por clase.

Si el parámetro es el nombre de un servidor, envía la petición a la máquina remota. Al margen de la información anterior, indica también la ruta que sigue el mensaje, incluyendo las versiones de IRCd.

Si se indican nick y servidores, si el nick no está en la ruta hacia nosotros, da un error.

UPING <servidor> [puerto] [servidor inicial] [número de pings]
Un usuario privilegiado (IRCop o servidor) puede pinguear un servidor de su ircd.conf, o pedir a otro servidor que lo haga. Por defecto se mandan cinco pings, separados por un segundo. En un momento dado, sólo puede haber un UPING en curso. Si se lanza otro, el anterior se cancela. El puerto por defecto es el UDP 7007.

SERVER <servidor> <hops> [<start timestamp> <link timestamp> P9] [descripción]
Este comando permite introducir nuevos servidores en la red. No es un comando accesible a usuarios.

El primer formato (sin el P9) es el documentado en la especificación original. Cada hub introduce los servidores a los que está conectado. El valor "hops" indica cuántos enlaces intermedios hay: en una conexión directa, vale uno. La descripción es un pequeño texto arbitrario.

Una red 2.9.32 puede dar cabida a servidores más antiguos. Para ello el servidor antiguo se identifica con el formato sencillo. Su HUB adaptará las diferencias para él (incluido el adaptarle los comandos SERVER para que vea el resto de la red).

El formato 2.9.32 se reconoce por el "P9". El start timestamp es un valor global para toda la red. El link timestamp se usa para cosas como la decisión del punto de conexión cuando hay lag y llega un mensaje SERVER ya cancelado.

MODE
RFC1459. Se especifican dos modos adicionales para usuarios:

  • d:

    Se dejan de recibir todos los PRIVMSG que no vayan específicamente dirigidos a nosotros. Ello hace que sigamos viendo como la gente entra y sale de los canales, cambios de modo, etc., pero no las conversaciones de los canales. Es un modo útil para reducir tráfico en los bots, por ejemplo.

  • k:

    Modo Channel Service. Consulta la Página sobre comandos IRCOp.

KILL
Consulta la Página sobre comandos IRCOp.

PRIVMSG
RFC1459. Los IRCops tienen modos adicionales. Consulta la Página sobre comandos IRCOp.



Python Zope ©1997 jcea@jcea.es

Más información sobre los OpenBadges

Donación BitCoin: 19niBN42ac2pqDQFx6GJZxry2JQSFvwAfS