IRC Client

  • Themenstarter Themenstarter Kebb
  • Beginndatum Beginndatum
K

Kebb

Halli hallo.

Ich bin gerade eben mal das "IRC-Client mit Hilfe von Windows-Sockets programmieren"-Tutorial durchgangen und habe den Code unverändert in ein neues Projekt eingefügt.Jedoch kommt, wenn ich zu einem Server verbinden will, folgende Fehlermeldung:

Code:
Nick: dfghnjm
Name: dcfvgbhn
Server: irc.blitzed.org
Raum: #sdfghjk
:openbeer.dk.eu.blitzed.org NOTICE AUTH :*** Looking up your hostname...
:openbeer.dk.eu.blitzed.org NOTICE AUTH :*** Found your hostname, cached
:openbeer.dk.eu.blitzed.org NOTICE AUTH :*** Checking Ident
:openbeer.dk.eu.blitzed.org NOTICE AUTH :*** No Ident response
PING :385008441
:openbeer.dk.eu.blitzed.org 451 dfghnjm JOIN :Register first.

:openbeer.dk.eu.blitzed.org NOTICE AUTH :If you are having difficulty connecting
, try typing /QUOTE PONG 385008441

Woran kann das liegen?
Danke!
 
Zuletzt bearbeitet von einem Moderator:
Du musst an den Server einen Pong schicken damit der Server weiss das Du nicht etwa Pakete gefälscht hast. Dieser String hinter dem Pong ist sehr oft dynamisch außer bei einigen "einfachen" oder nicht secure IRCd's.

Das schickst Du einfach zum IRCd
Code:
QUOTE PONG 385008441
Dieser String ändert sich aber immer wieder also Zeichen einzeln durchlesen und Zeichen umkopieren in einen neuen String und das \0 bzw \n\r natuerlich nicht vergessen :)

http://www.irchelp.org/irchelp/rfc/rfc2812.txt Da steht das auch noch einmal.

Gruß, Tommy
 
Zuletzt bearbeitet:
Ich hatte schonmal versucht, den Pong manuell zu schicken (also durch Eingabe) aber das hatte ihm anscheinend nicht gereicht ... naja ich muss mich erstmal weiter mit C++ an sich beschäftigen, um das zu automatisieren :-)
 
mir fällt auf du hast "USER" vergessen. sende dies mal noch mit sonst registriert dich nicht jeder IRCd. Jeder handhabt das anders. Die Benutzeranmeldung beim connect kann auf 2 Arten erfolgen.

mIRC hat eine Variante
xChat auch

Das sind die 2 Hauptclients wo ich das beobachten konnte. Die restlichen reagieren gleich.

bau dir einen einfachen Daemon oder Service mal und schau was der mIRC oder Xchat, kIRC oder andere senden. du wirst merken manche senden gleich 1 komplette Zeile (mit \n getrennt) und manche einzeln NICK, USER usw.

Das zu automatisieren, da würde ich Dir empfehlen leg eine verkettete Liste an mit Eents die Dein Client dann immer durchsucht und an ein Modul z.B. gibt. Wiederum aber auch auf die Bereinigung des dynamischen Speichers achten. :)

Ich habe schon an ein paar IRCd's geschrieben in mehreren Programmierersprachen und bestehende erweitert. Einen Client hatte ich auch mal gemacht in C# und einmal in C mit GTK+ für Linux und Mac OS X. Wenn Du da reingearbeitet bist ist das alles kein Problem mehr. Lies nur IMMER RFC Dokumente. Schau Dir vergleichbare Clients an die z.B. unter der GPL oder BSD Lizenz stehen. Für Windows z.B. xChat
 
Zurück