Ermitteln, ob ein Benutzer im IRC eingerückt ist

8

In meinem IRC Bot gibt es einige Befehle, die ich nur für mich verwenden kann, und ich möchte überprüfen, ob jemand, der meinen Namen benutzt, mit nickserv (idented) identifiziert wird. Ich konnte jedoch keinen einfachen Weg finden, dies festzustellen, weshalb ich hier bin.

Freenode und Rizon sind das Hauptziel Netzwerke, wenn das zählt.

Edit: Ich war mir der verschiedenen Usermodes für idented Benutzer bewusst (obwohl ich nicht genug darauf geachtet habe, dass sie sich unterscheiden!); Tut mir leid, dass ich das vorher nicht erwähnt habe. Die rohe Antwort, die ich von einem Benutzer erhalte, schließt jedoch ihre Benutzermodi nicht ein; Es sieht ungefähr so ​​aus:

%Vor%

Ich nehme an, dass ich versuche, einen Weg zu finden (mit verschiedenen ircds, grr), um diese Flaggen zu bekommen. Wenn, wie jemand erwähnt, Rizon zurückgibt, ob jemand in einer WHOIS-Abfrage identifiziert ist oder nicht, dann suche ich genau danach.

    
Xiong Chiamiov 05.11.2009, 19:19
quelle

6 Antworten

16

Bei freenode wird beim Senden einer privaten Nachricht an nickserv mit der Nachricht ACC <nickname> eine Zahl zurückgegeben, die den Identitätsstatus des Benutzers angibt:

  

Die Antwort lautet in der Form <nickname> ACC <digit> :

%Vor%

Der Befehl STATUS <nickname> gibt ähnliche Ergebnisse für Rizon:

  

Die Antwort hat dieses Format:

     

<nickname> <digit>

%Vor%

Die Vorteile, die diese Methode gegenüber einem WHOIS hat:

  1. Informationen über den Ident-Status sind immer enthalten. Mit WHOISes erhalten Sie einfach keine Zeile, die etwas in der Art von "identifiziert mit NickServ als solcher-und-wie" sagt, wenn der Benutzer das nicht tut , idented.
  2. Konsequente Anzahl von Zeilen zurückgegeben. Da ich die Nachricht abholen möchte, bevor ich die Kontrolle an den Rest meines Programms übergebe, kann ich leicht eine Zeile aus dem Puffer lesen (ich sehe Synchronisationsprobleme in Ihrer Zukunft! ), bestimmen Sie den Status und fahren Sie wie gewohnt fort.
Xiong Chiamiov 14.11.2009, 11:18
quelle
5

In einigen Netzwerken können Sie eine Funktion namens 'identify-msg' aktivieren. Auf FreeNode tun Sie dies, indem Sie "CAP REQ identify-msg" und "CAP END" senden, wenn Sie zum ersten Mal eine Verbindung zum Server herstellen. Der Server antwortet mit einer Antwort, die diese Funktion bestätigt. Danach wird allen Nachrichten (und CTCP ACTIONS) ein "+" vorangestellt (Benutzer hat sich mit NickServ identifiziert) oder ein "-" (Benutzer hat sich nicht mit NickServ identifiziert), z. B .:

: liam_neeson! [email protected] PRIVMSG # Erasmus-Testen: + foo

    
Hinrik 27.04.2011 23:23
quelle
2

Nick Registrierung ist nicht Teil des IRC-Standards. Es wird immer von angepassten IRC-Servern und / oder Bots angeboten. Ich glaube nicht, dass Sie eine wirklich universelle Lösung finden werden, aber NickServ ist eine allgemein verfügbare Implementierung, die in vielen Netzwerken funktionieren würde. Wikipedia hat weitere Informationen .

Vielleicht möchten Sie das Problem vollständig umgehen und sich Ihren Benutzer anstatt mit NickServ bei Ihrem Bot registrieren lassen. Ihr Bot würde dann die Kennwortprüfung durchführen und die Anmeldeinformationen des Benutzers ungültig machen, wenn sich der Benutzer abmeldet. Dies wäre eine universelle Lösung.

    
rmeador 05.11.2009 20:02
quelle
1

Wenn ein Benutzer bei Freenode mit NickServ identifiziert wird, hat sein Benutzer den + e-Modus festgelegt. Nicht sicher, ob Rizon etwas ähnliches hat.

    
jamessan 05.11.2009 19:45
quelle
1

UnrealIRCd und hybrd set + r für registrierte Benutzer, ich bin mir nicht sicher, ob alle IRC-Server dies tun, es ist ziemlich unstandardisiert. Auch auf Rizon können Sie whois und es wird Ihnen sagen, ob der Benutzer registriert ist.

    
quelle
0

Da Ihr Benutzername registriert ist, bevor Ihr Bot sich anmeldet, machen Sie diesen Befehl:

%Vor%

Dieser Befehl wird jeden Benutzer entfernen, der bei Ihrem Benutzer angemeldet ist. Denken Sie daran, dass ich diesen nur in Freenode verwendet habe. Ich weiß nicht, ob er auf einem anderen Server funktionieren wird.

    
Nathan Campos 05.11.2009 19:24
quelle

Tags und Links