2 Stimmen

"NOTICE AUTH"-Benachrichtigungen bei Verbindung mit IRC-Server

Als Lernübung schreibe ich ein Python-Programm, um eine Verbindung zu einem Kanal in einem IRC-Netzwerk herzustellen, damit ich Nachrichten im Kanal auf stdout ausgeben kann. Ich verwende asynchat und sende die Protokollnachrichten manuell, anstatt etwas wie Twisted oder vorhandenen Bot-Code aus dem Netz zu verwenden - auch das ist eine nützlichere Lernerfahrung.

Ich kann problemlos JOIN- und USER-Befehle senden und bei Bedarf PING/PONG ausführen. Ich habe jedoch festgestellt, dass ich beim Öffnen eines Sockets an Port 6667 einige Meldungen erhalte:

NOTICE AUTH :*** Looking up your hostname...
NOTICE AUTH :*** Checking ident
NOTICE AUTH :*** Found your hostname
NOTICE AUTH :*** No identd (auth) response

auch wenn ich die JOIN/USER-Befehle noch nicht gesendet habe.

Ist diese Eröffnungssequenz von Meldungen irgendwo angegeben? Soweit ich sehen kann, ist im RFC nicht festgelegt, dass etwas Bestimmtes passieren muss, bevor der Client den JOIN-Befehl sendet, und ich war mir nicht sicher, ob ich den Empfang dieser Benachrichtigungen abwarten soll, bevor ich den JOIN-Befehl sende, und wenn ja, wie kann ich feststellen, dass ich alle Benachrichtigungen erhalten habe?

0 Stimmen

Hrm, ich meinte NICK, wo ich oben JOIN geschrieben habe. Offensichtlich erfolgt der Kanalbeitritt später im Spiel.

4voto

Yuliy Punkte 16897

Es gibt keine RFC-Vorschrift, die dies vorschreibt, es ist einfach eine übliche Vorgehensweise, die Server in der freien Wildbahn anwenden. Beachten Sie, dass es sich um einfache alte NOTICE-Befehle handelt (d.h. nur um Nachrichten). Behandeln Sie sie einfach als Nachrichten, die an einen Pseudo-Benutzer "AUTH" gesendet werden (da der Server noch keinen besseren Namen für Sie hat). Sie müssen nicht auf sie warten, und der Server ist nicht verpflichtet, sie zu senden.

1 Stimmen

Sie stammen tatsächlich vom Server (da kein Absenderpräfix angegeben wurde) und werden zu eine Entität namens "AUTH". Der Server nennt Sie so, weil Sie noch keinen Nickname haben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X