Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Auth klappt nicht? / JOIN #Channel geht nicht? (https://www.delphipraxis.net/30952-auth-klappt-nicht-join-channel-geht-nicht.html)

HaCkAttaCk2001 1. Okt 2004 16:33


Auth klappt nicht? / JOIN #Channel geht nicht?
 
Hi @ all.

Ich versuche derzeit einen kleinen IRC Chat in eines meiner Programme einzubauen und verwende der Einfachheit halber die IdIRC-Komponente.

Ich hab auch schon ein bisschen was eingestellt damit ich sehe, was so passiert (OnSystem, OnDisconnect, OnError, OnRaw,...).

Nun wird mir in mein Memo das hier ausgegeben:

Zitat:

Verbinde zu: us.quakenet.org
-->Verbunden zu: us.quakenet.org
NOTICE AUTH :*** Checking Ident
AUTH :*** Looking up your hostname
Da kommt dann auch noch (manchmal, nicht immer, manchmal ist der Fehler schneller da) was mit "Found your hostname", allerdings kann ich das nicht so schnell kopieren ^^. Denn dann auf einmal kommt 'ne Exception und sagt "Verbindung aufgehoben.". Und die Verbindung zum Server ist weg. Wie kann ich das unterbinden, damit ich weitermachen und einen Server joinen kann?


C ya.

supermuckl 1. Okt 2004 16:36

Re: IdIRC macht Probs
 
kann es sein das du keinen ident server hast und deswegen der quakenet müll da so mucken macht und dich net reinlässt?

ich sage es ist 100%ig der server der dich nicht akzeptiert.. wegen irgend einem problemchen mit der security..

open proxy, bnc usw könnten ursache sein

HaCkAttaCk2001 1. Okt 2004 17:20

Re: IdIRC macht Probs
 
Hi.

Bin weder firewalled noch proxied. Bouncer hab ich auch keinen.

Bin auf quakenet angewiesen, weil dort der Channel läuft, der gejoined werden soll.


Gibts da nichts was der quakenet-server da von mir erwartet, was ich ihm vielleicht senden muss?

Edit: Laut manchen Personen hat idIRC irgendsowas wie Ident.


C ya.

supermuckl 1. Okt 2004 17:33

Re: IdIRC macht Probs
 
connecte mal ins quakenet mit mirc und schau dir das per netzwerksniffer an

dann mach das gleiche mit deiner komponente und schau wo es hängen bleibt bzw was anderst ist

HaCkAttaCk2001 1. Okt 2004 18:40

Re: IdIRC macht Probs
 
Hi.

Netzwerksniffer gibts viele... gibts vielleicht ne "Empfehlung der Redaktion" :D ?

Edit: Ich hab übrigens das leicht von mIrc abgewandelte gIrc.

C ya.

HaCkAttaCk2001 1. Okt 2004 21:53

Re: IdIRC macht Probs
 
Hi.

Ich hab mir jetzt mal nen Demo-Code gezogen, der statt IdIRC die ClientSocket-Komponente benutzt. Der Code wird dadurch zwar größer, allerdings funktioniert das connecten zum Quakenet blendend!

Nun gibts in dem Programm allerdings ein Problem: das joinen des Channels geht nicht. Mir würde es aber sehr helfen, wenn in der Demo das joinen gänge, dann kann ich mir erstmal ein Bild davon machen ob es überhaupt funktionieren täte.

Derzeit habe ich versucht es in dem Teil so zu lösen:
Delphi-Quellcode:
ClientSocket1.Socket.SendText('JOIN #Delphi' + hex('0A'));
Das mit dem Hex('0A') wurde schon in der ganzen Demo benutzt und scheint sich positiv auszuwirken... wie gesagt, falls alles gehen sollte studiere ich das ganze mal genauer.

Delphi-Quellcode:
function Hex(strData:string): string;
var sresult:string; sfinal:string; hexc:cardinal; i:integer;
begin
  i:=1;
  while i<=length(strData) do
    begin
      hexc := strtoint('$' + copy(strData,i,2));
      sresult := inttostr(hexc);
      sresult := chr(strtoint(sresult));
      sfinal := sfinal + sresult;
      i:=i+2;
    end;
  result := sfinal
end;

Wieso
funktioniert der JOIN-Befehl nicht? Er ist doch richtig aufgebaut und geschrieben?!

EDIT: Ich habe gerade eben gemerkt, dass der Join-Befehl auf manchen Servern funktioniert! Im quakenet scheint aber nur der Server wineasy2.se.quakenet.org den Join-Befehl zu akzeptieren. Problem: Ich kann ihn wegen der 3 Punkte in seinem Name weder pingen, noch direkt joinen! Ich komm immer nur über Umwege (mehrfaches Joinen) auf ihn drauf! Wie kann ich ihn direkt connecten :( .

Ich benutzte jetzt übrigens nicht mehr hex('0A') was, wie ich erfahren habe LF ist. Sondern hex('0D') + hex('0A') , was CR-LF ist (und somit Standardkonform).


C ya.

StanY 2. Okt 2004 21:24

Re: Auth klappt nicht? / JOIN #Channel geht nicht?
 
Lass vielleicht mal den Zeilenumbruch am Ende weg. Mit dem gings bei mir auch net oO, was mich sehr verwunderte... (brauchte den nur bei USER und OPEN).

also:
Delphi-Quellcode:
ClientSocket1.Socket.SendText('JOIN #Delphi');

HaCkAttaCk2001 3. Okt 2004 19:45

Re: Auth klappt nicht? / JOIN #Channel geht nicht?
 
Zitat:

Zitat von StanY
Lass vielleicht mal den Zeilenumbruch am Ende weg. Mit dem gings bei mir auch net oO, was mich sehr verwunderte... (brauchte den nur bei USER und OPEN).

also:
Delphi-Quellcode:
ClientSocket1.Socket.SendText('JOIN #Delphi');

OK, ich versuchs. Danke für den Tipp!


C ya.

DracoBlue 5. Okt 2004 08:35

Re: Auth klappt nicht? / JOIN #Channel geht nicht?
 
Hallo!

Ich habe auch mal eine IRC-Komponente programmiert, und die hatte das gleiche Problem :-D.

Für mich sieht das eher so aus, als wenn du kein USER & NICK schickst.
Wenn du das während des
Zitat:

NOTICE AUTH :*** Checking Ident
AUTH :*** Looking up your hostname
nicht sendest dann kappt der einfach die verbindung.

Mfg, DracoBlue

HaCkAttaCk2001 5. Okt 2004 18:25

Re: Auth klappt nicht? / JOIN #Channel geht nicht?
 
Hi.

Hm... aber er sendet es doch?! Oder doch nicht? Hm... muss ich nochmal prüfen. Da hab ich gar nicht so richtig dran gedacht, dass es da hängen könnte.


C ya.

HaCkAttaCk2001 6. Okt 2004 09:36

Re: Auth klappt nicht? / JOIN #Channel geht nicht?
 
Hi @ all.

Supermuckl war so freundlich und hat mir den Sourcecode von seinem (nicht ganz fertigen, aber funktionierendem :D ) IRC Client zum Abgleichen zur Verfügung gestellt.

Ich möchte mich trotzdem noch bei allen bedanken, die versucht haben, mir zu helfen :D .


C ya!

tn249 6. Okt 2004 22:49

Re: Auth klappt nicht? / JOIN #Channel geht nicht?
 
Zitat:

Zitat von StanY
Lass vielleicht mal den Zeilenumbruch am Ende weg. Mit dem gings bei mir auch net oO, was mich sehr verwunderte... (brauchte den nur bei USER und OPEN).

also:
Delphi-Quellcode:
ClientSocket1.Socket.SendText('JOIN #Delphi');


Ich bin mir ja nicht ganz sicher, aber muss vor das JOIN nicht noch ein "/" ?

MfG
tn_der_pate

supermuckl 6. Okt 2004 22:57

Re: Auth klappt nicht? / JOIN #Channel geht nicht?
 
Zitat:

Ich bin mir ja nicht ganz sicher, aber muss vor das JOIN nicht noch ein "/" ?
nein
das interpretiert mirc dann halt nur als commando und sendet es als solches und nicht als text an den user im query oder in den channel oder sonst wohin

in den RFCs ist das meiste erklärt.. was aber nicht von jedem server klar durchgezogen wird da es sehr viele verschiedene server gibt, die alle ein abgewandeltes protocol benutzen (können)

die urfunktionen sind normal nie betroffen sonst würde man mit normalen clients garnicht dort chatten können

aber die meisten services oder auch extra funktionen vom server sind immer vom verwendeten server abhängig

teilweise gibt es auch unterschiede in den normalen commandos wie join oderso.. aber diese verschiedenen optionen sind auch direkt dann in mirc gleich mit integriert worden.. es hat sich halt über jahre entwickelt und da ist abundzu halt was neues gekommen wobei aber das dann abwärtskompatibel sein musste.. und so gibts auch für normale cmds variationen

wenn man ganz sicher gehen will saugt man sich alle server varianten bzw wo es nicht funktioniert weil sie was kosten tut man halt zu diesem connecten und dann schaut man sich den datenstream über nen netzwerksniffer an (und zwar GANZ GENAU) da kommt es auf jedes sonderzeichen und leerzeichen an !
und dann kann man für alle fälle einen clienten basteln der überall gehen müsste :)

pjuk 20. Okt 2004 10:09

Re: Auth klappt nicht? / JOIN #Channel geht nicht?
 
hallo,

irc isses glaub ich so dass du den join client zwar schreiben kannst, dann kommt aber nen fehler 'not in channel'

konnta das so unterbinden, dass ich /join #channel in mein irc script schrieb und der fehler war weg.
weis nicht ob dir das hier bei denem delphi code weiterhilft jedoch sollteste vll mal nen / davor stezten

greetz

sECuRE 20. Okt 2004 13:31

Re: Auth klappt nicht? / JOIN #Channel geht nicht?
 
Hi,

supermuckl hat da schon Recht - vor das JOIN muss kein /. Das sieht man zB daran, dass man in mIRC und anderen Clients das Command Prefix, welches Standardmäßig / ist, auch umstellen kann. Dann funktioniert zB &join auch..

Eine einfache Methode, das IRC-Protokoll zu verstehen ist (neben dem RFC 1459) auch die mIRC-interne debug-funktion, die sämtlichen Traffic zwischen mIRC und dem IRC Server anzeigt. Aufzurufen ist die wie folgend:

In Datei loggen: /debug <dateiname>
In (neues) Fenster loggen: /debug -nt @fenstername

Loggen ausschalten: /debug off

Für weitere Informationen gibts die Hilfe ;)

Zum Senden über ClientSocket sollte man ein #13#10 (CRLF) anhängen, ansonsten wird der Befehl erst mit einiger Verzögerung (wenn der nächste kommt) ausgeführt. Der korrekte Code lautet also:

ClientSocket1.Socket.SendText('JOIN #channel'+#13#10);

Die JOIN-Syntax lautet (aus dem RFC):
Code:
   Command: JOIN
   Parameters: <channel>{,<channel>} [<key>{,<key>}]
Mit idIRC hab ich keinerlei Erfahrungen, ich mach sowas lieber selbst ;)

cu


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz