Basis-Client für IRC-Chat

    • Offizieller Beitrag

    Hi,
    ich habe hier mal die Grundform eines IRC-Clienten erstellt. Alle notwendigen Funktionen sind mit enthalten, es braucht also nix includet werden.
    In dieser Variante wird bereits nach den wesentlichen Ereignissen im Chat selektiert, alle eingehenden Nachrichten/Ereignisse werden auf die Console ausgegeben. Hier könnte man z.B. mit einer Auswertung ansetzen für einen Bot 8o .
    Einige Aktionen, die der Client ausführen kann, habe ich in HotKeys hinterlegt.
    Um zu sehen, was der Client tut, geht am besten mit einem IRC-Client (Dana, Miranda o.ä.) in den Chat. Natürlich nicht mit demselben Nick. :whistling:
    Also viel Spaß damit.

    Spoiler anzeigen
    [autoit]

    Global $server = "irc.afterworkchat.com"
    Global $channel = '#autoit'
    Global $nick = 'TestNick1'
    Global $port = 6667
    Global $USER, $USER_alt, $text, $txt

    [/autoit] [autoit][/autoit] [autoit]

    HotKeySet('#!w', '_werfen') ; Aktion des Clients
    HotKeySet('#!a', '_action') ; Aktion des Clients
    HotKeySet('#!s', '_say') ; Client spricht
    HotKeySet('#!q', '_quit') ; Abmelden vom Server, Programmende
    HotKeySet('#!p', '_part') ; Channel verlassen
    HotKeySet('#!j', '_join') ; Channel betreten

    [/autoit] [autoit][/autoit] [autoit]

    TCPStartup ()
    Global $sock = _IRCConnect($server, $port, $nick); Verbindung zu IRC und Identifizierung Nickname

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()
    If $msg = -3 Then
    Exit
    EndIf
    $recv = TCPRecv($sock, 8192); Empfängt vom Server
    If @error Then
    Exit MsgBox(1, "IRC Example", "Server has errored or disconnected"); Verbindung zum Server besteht nicht mehr
    EndIf
    Local $sData = StringSplit($recv, @CRLF); Splittet die Nachrichten, wenn sie vom Server gruppiert werden
    For $i = 1 To $sData[0] Step 1; behandelt jede Nachricht einzeln
    Local $sTemp = StringSplit($sData[$i], " "); Splittet die Nachricht an den Leerzeichen
    If $sTemp[1] = "" Then ContinueLoop; Weiter, wenn leer
    If $sTemp[1] = "PING" Then _IRCPing($sock, $sTemp[2]); Prüft ob PING zurückgegeben wird
    If $sTemp[0] <= 2 Then ContinueLoop; meist nutzlose Informationen
    Switch $sTemp[2]; Splittet die Command Nachricht
    Case "266"; Indikator der zeigt, dass alle Infos gesendet wurden
    _IRCJoinChannel ($sock, $channel)
    _IRCSendMessage($sock, "Hallo!", $channel)
    _IRCChangeMode ($sock, "+i", $nick)
    Case "332" ; Raumthema
    $titel = ''
    For $k = 6 To $sTemp[0]
    $titel &= $sTemp[$k] & ' '
    Next
    ConsoleWrite('Thema: ' & $titel & @CRLF)
    Case "333" ; Thema von
    ConsoleWrite('Thema von: ' & $sTemp[5] & @CRLF)
    Case "353" ; Userlist
    $text = 'User:' & @CRLF
    For $k = 6 To $sTemp[0]
    If $k = 6 Then
    $text &= @TAB & StringTrimLeft($sTemp[$k],1) & @CRLF
    Else
    $text &= @TAB & $sTemp[$k] & @CRLF
    EndIf
    Next
    ConsoleWrite($text & @CRLF)
    Case 'PRIVMSG' ; Nachricht empfangen
    $USER = StringTrimLeft(StringLeft($sTemp[1], StringInStr($sTemp[1], '!')-1), 1)
    $text = ''
    $txtUSER = ''
    For $k = 4 To $sTemp[0]
    $text &= $sTemp[$k] & ' '
    Next
    $text = StringTrimLeft($text, 1)
    If StringInStr($text, 'ACTION', 1) Then ; Aktion von USER
    $text = StringTrimLeft($text, 8)
    $text = StringLeft($text, StringLen($text)-2)
    ConsoleWrite('***' & $USER & ' ' & $text & @CRLF)
    ElseIf StringInStr($text, 'DCC CHAT', 1) Then ; Direkt-Chatanfrage
    $text = 'DCC-Chatanfrage von ' & $USER
    ConsoleWrite($text & @CRLF)
    Else
    ConsoleWrite('<' & $USER & '> ' & $text & @CRLF) ; USER spricht
    EndIf
    Case 'JOIN' ; Chatraum wird betreten
    $USER = StringTrimLeft(StringLeft($sTemp[1], StringInStr($sTemp[1], '!')-1), 1)
    ConsoleWrite('***' & $USER & 'betritt den Raum' & @CRLF)
    Case 'NICK' ; Nick wird gewechselt
    $USER_alt = StringTrimLeft(StringLeft($sTemp[1], StringInStr($sTemp[1], '!')-1), 1)
    $USER = StringTrimLeft($sTemp[3], 1)
    ConsoleWrite('***' & $USER_alt & ' heißt jetzt: ' & $USER & @CRLF)
    Case 'PART' ; Chatraum wird verlassen
    $USER = StringTrimLeft(StringLeft($sTemp[1], StringInStr($sTemp[1], '!')-1), 1)
    $txt = $USER & ' verläßt den Chatraum '
    $text = ''
    If $sTemp[0] > 3 Then
    For $k = 4 To $sTemp[0]
    If $k = 4 Then
    $text &= StringTrimLeft($sTemp[$k], 1) & ' '
    Else
    $text &= $sTemp[$k] & ' '
    EndIf
    Next
    $text = StringTrimRight($text, 1)
    EndIf
    ConsoleWrite($txt & $text & @CRLF)
    Case 'QUIT' ; Server wird verlassen
    $USER = StringTrimLeft(StringLeft($sTemp[1], StringInStr($sTemp[1], '!')-1), 1)
    $txt = $USER & ' verläßt den Chatraum '
    If $sTemp[0] > 3 Then
    For $k = 4 To $sTemp[0]
    $text &= $sTemp[$k] & ' '
    Next
    $text = StringTrimRight($text, 1)
    $text = $txt & $text
    EndIf
    ConsoleWrite($txt & $text & @CRLF)
    Case Else ; alle Nachrichten, die nicht in andere Kategorien passen, z.B. Server-Infos
    ConsoleWrite('sonstiges: ' & $sData[$i] & @CRLF)
    EndSwitch
    Next
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    #region HotKey-Funktionen
    Func _say()
    _IRCSendMessage($sock, "Hallo ihr alle!", $channel)
    EndFunc
    Func _action()
    _IRCSendAction ($sock, "begrüßt erst mal alle Chatter persönlich mit Handschlag", $channel)
    EndFunc
    Func _quit()
    _IRCQuit($sock, "Bis zum nächsten Mal")
    Exit
    EndFunc
    Func _werfen()
    _IRCSendAction ($sock, "wirft einen bunten Konfettiregen in den Chat", $channel)
    EndFunc
    Func _part()
    _IRCLeaveChannel($sock, 'Bis gleich', $channel)
    EndFunc
    Func _join()
    _IRCJoinChannel ($sock, $channel)
    EndFunc
    #endregion HotKey-Funktionen
    #region IRC-Func
    ;===============================================================================
    ;
    ; Description: Connects you to a IRC Server, and gives your chosen Nick
    ; Parameter(s): $server - IRC Server you wish to connect to
    ; $port - Port to connect to (Usually 6667)
    ; $nick - Nick you choose to use (You can change later)
    ; Requirement(s): TCPStartup () to be run
    ; Return Value(s): On Success - Socket identifer
    ; On Failure - It will exit on error
    ; Author(s): Chip
    ; Note(s): English only
    ;
    ;===============================================================================
    Func _IRCConnect ($server, $port, $nick)
    Local $i = TCPConnect(TCPNameToIP($server), $port)
    If $i = -1 Then Exit MsgBox(1, "IRC.au3 Error", "Server " & $server & " is not responding.")
    TCPSend($i, "NICK " & $nick & @CRLF)
    $ping = tcprecv($i,2048)
    if stringleft($ping,4) = "PING" Then
    $pong = stringreplace($ping,"PING :","")
    tcpsend($i,"PONG " & $pong & @LF)
    EndIf
    TCPSend($i, "USER " & $nick & " 0 0 " & $nick &@CRLF)
    Return $i
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;===============================================================================
    ;
    ; Description: Close the IRC Connection
    ; Parameter(s): $irc - Socket Identifer from _IRCConnect ()
    ; $msg - Message to send with quit
    ; Requirement(s): _IRCConnect () to be run
    ; Return Value(s): On Success - 1
    ; On Failure - -1 = Server disconnected.
    ; Author(s): BugFix
    ; Note(s): English only
    ;
    ;===============================================================================
    Func _IRCQuit($irc, $msg="")
    If $irc = -1 Then Return 0
    TCPSend($irc, "QUIT :" & $msg & @CRLF)
    Return 1
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;===============================================================================
    ;
    ; Description: Leave the IRC Channel
    ; Parameter(s): $irc - Socket Identifer from _IRCConnect ()
    ; $msg - Message to send with part
    ; Requirement(s): _IRCConnect () to be run
    ; Return Value(s): On Success - 1
    ; On Failure - -1 = Server disconnected.
    ; Author(s): BugFix
    ; Note(s): English only
    ;
    ;===============================================================================
    Func _IRCLeaveChannel ($irc, $msg="", $chan="")
    If $irc = -1 Then Return 0
    TCPSend($irc, "PART " & $chan & " :" & $msg & @CRLF)
    If @error Then
    MsgBox(1, "IRC.au3", "Server has disconnected.")
    Return -1
    EndIf
    Return 1
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;===============================================================================
    ;
    ; Description: Joins an IRC Channel
    ; Parameter(s): $irc - Socket Identifer from _IRCConnect ()
    ; $chan - Channel you wish to join
    ; Requirement(s): _IRCConnect () to be run
    ; Return Value(s): On Success - 1
    ; On Failure - -1 = Server disconnected.
    ; Author(s): Chip
    ; Note(s): English only
    ;
    ;===============================================================================
    Func _IRCJoinChannel ($irc, $chan)
    If $irc = -1 Then Return 0
    TCPSend($irc, "JOIN " & $chan & @CRLF)
    If @error Then
    MsgBox(1, "IRC.au3", "Server has disconnected.")
    Return -1
    EndIf
    Return 1
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;===============================================================================
    ;
    ; Description: Sends a message using IRC
    ; Parameter(s): $irc - Socket Identifer from _IRCConnect ()
    ; $msg - Message you want to send
    ; $chan - Channel/Nick you wish to send to
    ; Requirement(s): _IRCConnect () to be run
    ; Return Value(s): On Success - 1
    ; On Failure - -1 = Server disconnected.
    ; Author(s): Chip
    ; Note(s): English only
    ;
    ;===============================================================================
    Func _IRCSendMessage ($irc, $msg, $chan="")
    If $irc = -1 Then Return 0
    If $chan = "" Then
    TCPSend($irc, $msg & @CRLF)
    If @error Then
    MsgBox(1, "IRC.au3", "Server has disconnected.")
    Return -1
    EndIf
    Return 1
    EndIf
    TCPSend($irc, "PRIVMSG " & $chan & " :" & $msg & @CRLF)
    If @error Then
    MsgBox(1, "IRC.au3", "Server has disconnected.")
    Return -1
    EndIf
    Return 1
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;===============================================================================
    ;
    ; Description: Sends a message as ACTION using IRC
    ; Parameter(s): $irc - Socket Identifer from _IRCConnect ()
    ; $msg - Message you want to send
    ; $chan - Channel/Nick you wish to send to
    ; Requirement(s): _IRCConnect () to be run
    ; Return Value(s): On Success - 1
    ; On Failure - -1 = Server disconnected.
    ; Author(s): BugFix
    ; Note(s): English only
    ;
    ;===============================================================================
    Func _IRCSendAction ($irc, $msg, $chan="")
    If $irc = -1 Then Return 0
    If $chan = "" Then
    TCPSend($irc, $msg & @CRLF)
    If @error Then
    MsgBox(1, "IRC.au3", "Server has disconnected.")
    Return -1
    EndIf
    Return 1
    EndIf
    TCPSend($irc, "PRIVMSG " & $chan & " :" & Chr(1) & "ACTION " & $msg & Chr(1) & @CRLF)
    If @error Then
    MsgBox(1, "IRC.au3", "Server has disconnected.")
    Return -1
    EndIf
    Return 1
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;===============================================================================
    ;
    ; Description: Changes a MODE on IRC
    ; Parameter(s): $irc - Socket Identifer from _IRCConnect ()
    ; $mode - Mode you wish to change
    ; $chan - Channel/Nick you wish to send to
    ; Requirement(s): _IRCConnect () to be run
    ; Return Value(s): On Success - 1
    ; On Failure - -1 = Server disconnected.
    ; Author(s): Chip
    ; Note(s): English only
    ;
    ;===============================================================================
    Func _IRCChangeMode ($irc, $mode, $chan="")
    If $irc = -1 Then Return 0
    If $chan = "" Then
    TCPSend($irc, "MODE " & $mode & @CRLF)
    If @error Then
    MsgBox(1, "IRC.au3", "Server has disconnected.")
    Return -1
    EndIf
    Return 1
    EndIf
    TCPSend($irc, "MODE " & $chan & " " & $mode & @CRLF)
    If @error Then
    MsgBox(1, "IRC.au3", "Server has disconnected.")
    Return -1
    EndIf
    Return 1
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;===============================================================================
    ;
    ; Description: Returns a PING to Server
    ; Parameter(s): $irc - Socket Identifer from _IRCConnect ()
    ; $ret - The end of the PING to return
    ; Requirement(s): _IRCConnect () to be run
    ; Return Value(s): On Success - 1
    ; On Failure - -1 = Server disconnected.
    ; Author(s): Chip
    ; Note(s): English only
    ;
    ;===============================================================================
    Func _IRCPing($irc, $ret)
    If $irc = -1 Then Return 0
    If $ret = "" Then Return -1
    TCPSend($irc, "PONG " & $ret & @CRLF)
    If @error Then
    MsgBox(1, "irc.au3", "Server has disconnected.")
    Return -1
    EndIf
    Return 1
    EndFunc
    #endregion IRC-Func
    #region IRC-Syntax
    #cs
    Common recieves:
    Nick = User who the message is from
    Name = Settable by user, set in the USER command
    host = ISP host

    [/autoit] [autoit][/autoit] [autoit]

    ~~~~PRIVMSG~~~~
    You recieve this when someone has sent a message in a channel,
    gives you there Nick, host, the channel it was said in and the message.

    [/autoit] [autoit][/autoit] [autoit]

    SYNTAX:
    :Nick!Name@host PRIVMSG #Channel :Message

    [/autoit] [autoit][/autoit] [autoit]

    EXAMPLE:
    :Chip![email='Chip@OMN-8243F63D.dsl.bell.ca'][/email] PRIVMSG #Chip :Hey guy's
    Would be a message from Chip to say 'Hey guy's' in the channel #Chip

    [/autoit] [autoit][/autoit] [autoit]

    :Chip![email='Chip@OMN-8243F63D.dsl.bell.ca'][/email] PRIVMSG Bob :Hey Bob!
    Would be a Personal Message from Chip to Bob saying 'Hey Bob!'
    ~~~~~~~~~

    [/autoit] [autoit][/autoit] [autoit]

    ~~~~MODE~~~~
    You recieve this when a mode is changed, a mode can give/take access change certain
    things like who can join a channel etc..

    [/autoit] [autoit][/autoit] [autoit]

    SYNTAX:
    :Nick!Name@host MODE #Channel +/- MODE (USER)

    [/autoit] [autoit][/autoit] [autoit]

    EXAMPLES:
    :ChanServ!services@host MODE #Chip +o Chip
    This says ChanServ (usually a service bot) has given Chip Operator access in the channel #Chip

    [/autoit] [autoit][/autoit] [autoit]

    :ChanServ!services@host MODE #Chip +i
    This makes #Chip invite only, so only OPs can invite users in the channel.

    [/autoit] [autoit][/autoit] [autoit]

    :Chip![email='Chip@OMN-8243F63D.dsl.bell.ca'][/email] MODE Chip +i
    This will make Chip invisible to WHOIS. These are usermodes.
    ~~~~~~~~~

    [/autoit] [autoit][/autoit] [autoit]

    ~~~~PING~~~~
    You recieves these at random to make sure your still online and
    not disconnected.

    [/autoit] [autoit][/autoit] [autoit]

    SYNTAX:
    PING :Randomletters

    [/autoit] [autoit][/autoit] [autoit]

    Usually a PING has random letters that you have to respond with.

    [/autoit] [autoit][/autoit] [autoit]

    EXAMPLE:
    PING :29809dj0d

    [/autoit] [autoit][/autoit] [autoit]

    You would respond with
    PONG 29809dj0d
    ~~~~~~~~~~~

    [/autoit] [autoit][/autoit] [autoit]

    ~~~~JOIN~~~~
    You recieve this when someone joins a channel.

    [/autoit] [autoit][/autoit] [autoit]

    SYNTAX:
    :Nick!Name@Host JOIN :#Channel

    [/autoit] [autoit][/autoit] [autoit]

    EXAMPLE:
    :Chip![email='Chip@OMN-8243F63D.dsl.bell.ca'][/email] JOIN :#Chip
    This would be sent to everybody in #Chip to show that Chip has joined the channel #Chip
    ~~~~~~~~~~~~~

    [/autoit] [autoit][/autoit] [autoit]

    ~~~~KICK~~~~
    You recieve this when someone gets kicked (Including yourself!)

    [/autoit] [autoit][/autoit] [autoit]

    SYNTAX:
    :Nick!Name@Host KICK #Channel User :Reason

    [/autoit] [autoit][/autoit] [autoit]

    EXAMPLE:
    :Chip!Name@Host KICK #Chip Bob :Talk in private
    Would kick Bob from #Chip and say 'Talk in private' in the reason
    ~~~~~~~~~~~~~~

    [/autoit] [autoit][/autoit] [autoit]

    ~~~~QUIT~~~~
    You recieve this when someone disconnects from IRC.

    [/autoit] [autoit][/autoit] [autoit]

    SYNTAX:
    :Nick!Name@Host QUIT :Reason

    [/autoit] [autoit][/autoit] [autoit]

    EXAMPLE:
    :Chip![email='Chip@OMN-8243F63D.dsl.bell.ca'][/email] QUIT :I'm bored
    Would be sent to everyone in the channels Chip was in to say that he left IRC because He was bored.
    ~~~~~~~~~~~~~~

    [/autoit] [autoit][/autoit] [autoit]

    #ce
    #endregion IRC-Syntax

    [/autoit]
  • Hi,

    das teil sieht auf jeden fall cool aus, kann man damit auch bestimmte Texte oder Actions von anderen Usern rausfiltern ?
    also wie bei mirc selber quasi On Text oder On Action ?

    PS:

    hab noch ein paar probs ausfindig machen können *g*
    man kann seinen nick nicht "identen", wie schauts aus mit pw-geschützten channels?

    • Offizieller Beitrag

    Kann man, das passiert hier:

    Spoiler anzeigen
    [autoit]

    Case 'PRIVMSG' ; Nachricht empfangen
    $USER = StringTrimLeft(StringLeft($sTemp[1], StringInStr($sTemp[1], '!')-1), 1)
    $text = ''
    $txtUSER = ''
    For $k = 4 To $sTemp[0]
    $text &= $sTemp[$k] & ' '
    Next
    $text = StringTrimLeft($text, 1)
    If StringInStr($text, 'ACTION', 1) Then ; Aktion von USER
    $text = StringTrimLeft($text, 8)
    $text = StringLeft($text, StringLen($text)-2)
    ConsoleWrite('***' & $USER & ' ' & $text & @CRLF)
    ElseIf StringInStr($text, 'DCC CHAT', 1) Then ; Direkt-Chatanfrage
    $text = 'DCC-Chatanfrage von ' & $USER
    ConsoleWrite($text & @CRLF)
    Else
    ConsoleWrite('<' & $USER & '> ' & $text & @CRLF) ; USER spricht
    EndIf

    [/autoit]

    Lass es einfach in einem Chat laufen, dann siehst du es, die Ausgaben erfolgen im Bsp. in die Console.

    Selbstverständlich kannst du deinen Nick identifizieren:

    [autoit]

    _IRCSendMessage($sock, 'IDENTIFY ' & 'Passwort', 'NickName')

    [/autoit]


    Zugang zu einem PW-geschützten Channel genau wie per Hand, einfach "/join #channel pw", also:

    [autoit]

    _IRCJoinChannel ($irc, $chan & ' Passwort')

    [/autoit]
    • Offizieller Beitrag

    ist es in irgendeiner form möglich, ssl und fish support da reinzubasteln?


    Darüber habe ich mir noch keine Gedanken gemacht. Da muß ich nochmal das Protokoll durchschauen, ob das realisierbar ist. Also machbar ist es sicher, aber vermutlich kein Merkmal für Standard-Clients.

    ich schreibe gerade auch einen irc clienten dürfte ich evtl auf ein paar sachen von dir zurückgreifen?


    Du kannst alles frei verwenden. Ein Teil der Funktionen stammt aus dem EN-Forum, einige habe ich ergänzt und dann dieses Funktionsmuster erstellt.

    • Offizieller Beitrag

    Hi sc4ry,
    ich kann dir zumindest schonmal sagen, dass SSL-Verschlüsselung möglich ist. Du benötigst dazu in jedem Fall eine zusätzliche DLL für den Verschlüsselungsdienst. Für mIRC habe ich etwas gefunden - ich werde jetzt mal testen, ob ich das aufbröseln kann und für den eigenen Client nutzen kann. Falls du selber rumprobieren möchtest - hier die Info: IRC mit SSL

  • hmm, das thema hier ist zwar schon ein bischen alt, aber trotzdem könnte ich die irc funktion gut gebrauchen. Allerdings connected er perfekt auf den server etc. aber channeljoin will einfach nicht funktionieren. Könntest du danach mal schauen?

  • Du drückst aber schon den Hotkey, oder?

    muss man doch gar nicht ;) das sollte er eigendlich automatisch machen. Habe aber eben versucht den Bot per Hotkey in den Channel zu rufen. Hat auch nicht funktioniert :/

    Edit: Muss wohl etwas mit quakenet zu tun haben. Habe ihn gerade auf einem anderem Server getestet und dort geht alles perfekt. hmm... nur woran könnte es liegen? ?(

  • Hey, also nach langer zeit bin ich jetzt mal wieder soweit, bissel hierdran rumzudocktern.

    als erstes habe ich mal versucht (da ich überall FiSH für mIRC nutze), dass nachzubauen. Leider war das nicht so einfach, wie ich dachte ... wer also lust hat, sich damit auch auseinander zu setzen, kann gerne mal hier vorbeischauen -> http://www.autoitscript.com/forum/index.php?showtopic=113064

    danach würde ssl anstehen ... ist hier vllt schon jmd weitergekommen? dürfte ja auch "nur" eine dll-sache sein ;)

    • Offizieller Beitrag

    Ich hatte mich mal damit befasst, es dann aber bleiben lassen. Grund: SSL im IRC ist totaler Schwachsinn. Das gibt dir eine Pseudosicherheit, die definitiv nicht vorhanden ist.
    SSL macht nur bei End-To-End Verbindungen Sinn. Gerade das ist aber im IRC-Netz nicht der Fall.
    Eine Verschlüsselung mit der Fish.dll wäre sinnvoll - aber demgegenüber steht die Bequemlichkeit der User.
    Wenn du möchtest, kannst du dich gern damit befassen, ich werde keine weiteren Anstrengungen in der Richtung unternehmen.

  • Hey,

    also ich hab bei weitem nicht soviel ahnung und würde dir da "fast" blind vertrauen, aber nur fast *g*
    nee, zumindest ein paar fragen hät ich noch:

    Im normalfall wird ja über den server kommuniziert. diese verbindung würde nun mit ssl verschlüsselt werden. warum macht es denn keinen sinn, diese kommunikation (auch) zu verschlüsseln.

    es gibt ja auch diverse wege, client-to-client übers irc zu kommunizieren. würde dies bei der ssl-implementierung ebenfalls eingeschlossen sein, bzw könnte man das mit ssl sichern? ist das überhaupt zZ der fall (wie kann mans testen?)?

    zu guter letzt noch eine verständnisfrage: bei mirc ist es ja (leider) so, 2 dlls ins verzeichnis, vor den port ein + und schon läufts. das verständnis für die dlls und ssl ist damit nicht gegeben. würde quasi jede nachricht die gesendet/ verschickt wird, durch die dll gejagt werden oder ist es "nur" die verbindung zum server (quasi 1 dllcall) aufzubauen und der rest geht automatisch?