Teamspeak Channel Liste

  • VB.NET

Es gibt 19 Antworten in diesem Thema. Der letzte Beitrag () ist von Proof83.

    Hi,

    Du musst eine TCP Verbindung über das Port 10011 zum TS3 Server aufbauen.
    Du kanst einfach ein verbindung mit der telnet.exe aufbauen zu herrum probieren.
    Du kannst help eingeben dann listet er dir alle Befehle auf oder du ladest dir den TS3 Server runter.
    Da sind dan im Ordner serverquerydocs alle Befehle dirn mit Beschreibung.
    Jo! geht klar!
    Ich connecte auf den Server von S-Housing.net:
    Hier der Log:


    Spoiler anzeigen

    Quellcode

    1. [TS]
    2. OK
    3. id codec parent order maxusers name flags password topic
    4. 1 12 -1 4 100 "�,��� Willkommen ���,�" 24 0 "Default"
    5. 2 0 -1 1 0 "�����������������������������" 0 0 ""
    6. 3 0 -1 2 0 "����������� Regeln ���������" 0 0 ""
    7. 4 0 -1 2 0 "�������Ts-Telenummer�������" 0 0 "069 173 0905 16245"
    8. 5 0 -1 3 0 "���������������������������" 0 0 ""
    9. 6 0 -1 5 0 "���������������������������" 0 0 ""
    10. 7 12 -1 6 100 "�,��� Support ���,�" 8 0 ""
    11. 8 0 -1 7 0 "��������������������������" 0 0 ""
    12. 9 12 -1 8 100 "�,��� B�ro's ���,�" 12 1 ""
    13. 10 0 -1 9 0 "�����������������������������" 0 0 ""
    14. 11 12 -1 3000 0 "������� Member-Area ���������" 8 0 ""
    15. 12 12 -1 3005 100 "[----�� Norwegen Treff" 12 1 ""
    16. 13 0 -1 3199 0 "����������������������������" 0 0 ""
    17. 14 12 -1 3200 100 " (��._) AFK (_.���)" 10 0 ""
    18. 15 0 -1 2999 100 "�������������������������" 0 0 ""
    19. 16 12 -1 3002 100 "PittiPlatsch" 10 0 ""
    20. 17 12 1 1 100 "*�`�� Lounge" 0 0 ""
    21. 18 12 1 2 100 "*�`�� Labern-1" 0 0 ""
    22. 19 12 1 3 100 "*�`�� Labern-2" 0 0 ""
    23. 20 12 1 4 100 "*�`�� Labern-3" 0 0 ""
    24. 21 12 1 5 100 "*�`�� unter-4-Augen" 0 0 ""
    25. 22 12 7 1 100 "*�`�� Raum 1" 0 0 ""
    26. 23 12 7 2 100 "*�`�� Raum 2" 0 0 ""
    27. 24 12 7 3 100 "*�`�� Raum 3" 0 0 ""
    28. 25 12 9 1 100 "*�`�� FLOR" 0 0 ""
    29. 26 12 9 2 100 "*�`�� SilverDragon" 0 0 ""
    30. OK

    Myrax schrieb:

    Jo! geht klar!
    Ich connecte auf den Server von S-Housing.net:
    Hier der Log:


    Spoiler anzeigen

    Quellcode

    1. [TS]
    2. OK
    3. id codec parent order maxusers name flags password topic
    4. 1 12 -1 4 100 "�,��� Willkommen ���,�" 24 0 "Default"
    5. 2 0 -1 1 0 "�����������������������������" 0 0 ""
    6. 3 0 -1 2 0 "����������� Regeln ���������" 0 0 ""
    7. 4 0 -1 2 0 "�������Ts-Telenummer�������" 0 0 "069 173 0905 16245"
    8. 5 0 -1 3 0 "���������������������������" 0 0 ""
    9. 6 0 -1 5 0 "���������������������������" 0 0 ""
    10. 7 12 -1 6 100 "�,��� Support ���,�" 8 0 ""
    11. 8 0 -1 7 0 "��������������������������" 0 0 ""
    12. 9 12 -1 8 100 "�,��� B�ro's ���,�" 12 1 ""
    13. 10 0 -1 9 0 "�����������������������������" 0 0 ""
    14. 11 12 -1 3000 0 "������� Member-Area ���������" 8 0 ""
    15. 12 12 -1 3005 100 "[----�� Norwegen Treff" 12 1 ""
    16. 13 0 -1 3199 0 "����������������������������" 0 0 ""
    17. 14 12 -1 3200 100 " (��._) AFK (_.���)" 10 0 ""
    18. 15 0 -1 2999 100 "�������������������������" 0 0 ""
    19. 16 12 -1 3002 100 "PittiPlatsch" 10 0 ""
    20. 17 12 1 1 100 "*�`�� Lounge" 0 0 ""
    21. 18 12 1 2 100 "*�`�� Labern-1" 0 0 ""
    22. 19 12 1 3 100 "*�`�� Labern-2" 0 0 ""
    23. 20 12 1 4 100 "*�`�� Labern-3" 0 0 ""
    24. 21 12 1 5 100 "*�`�� unter-4-Augen" 0 0 ""
    25. 22 12 7 1 100 "*�`�� Raum 1" 0 0 ""
    26. 23 12 7 2 100 "*�`�� Raum 2" 0 0 ""
    27. 24 12 7 3 100 "*�`�� Raum 3" 0 0 ""
    28. 25 12 9 1 100 "*�`�� FLOR" 0 0 ""
    29. 26 12 9 2 100 "*�`�� SilverDragon" 0 0 ""
    30. OK


    Lies es Zeilen weise aus und splitte nach jedem TAB dann hast du alles in einem Array Fertig ..

    Mfg
    Grüße , xChRoNiKx

    Nützliche Links:
    Visual Studio Empfohlene Einstellungen | Try-Catch heißes Eisen
    schau mal im ts2 client nach *also im ordner wo es installiert ist* da isn ordner namens "client_sdk" ... der enthält u.a ne dll mit verschiedenen lustigen funktionen ;) wie zb folgender

    Quellcode

    1. //##############################################################################
    2. //#
    3. //# Function tsrGetChannels( tsrChannels : PtsrChannelInfo;
    4. //# ChannelRecords: PInteger): Integer;
    5. //#
    6. //# Description:
    7. //# Get a list of the channels on the server.
    8. //#
    9. //# Input:
    10. //# tsrChannels: A pointer to an array of TtsrChannelInfo records
    11. //# ChannelRecords: pointer to a integer which specifies how many
    12. //# TtsrChannelInfo records tsrChannels can hold.
    13. //#
    14. //# Output:
    15. //# Result: 0 = OK, else the error number
    16. //# if result = 0 then tsrChannels is filled with the channel info.
    17. //# ChannelRecords will have the number or records that were filled
    18. //#
    19. //##############################################################################

    musst mal in der TsRemoteImport.pas schaun da sind auflistungen etc von den funktionen drinnen :)
    schau dir da am besten ma die seite hier an^^
    dotnetbase.de/topic/465-teamspeak/page__p__3769#entry3769

    hab selbst au noch nich mit der dll gearbeitet wusste nur das es die gibt :D
    was aber n "problem" ist du musst mim ts2 client auf dem server sei um mit der dll infos etc abzufragen ....
    die dll is also eig nichts anderes als ne fernbedienung für dein ts2-client
    Hi,

    Ich kabst geschaft das gene über das Query Port aus zu lesen.

    VB.NET-Quellcode

    1. Dim client As TcpClient
    2. Dim stream As NetworkStream
    3. Dim stream_w As StreamWriter
    4. Dim stream_r As StreamReader
    5. Dim IPAdresse As String = "127.0.0.1" 'IP es TS2 Server
    6. Dim port As Integer = 8767 'Das UDP Port des TS2 Servers
    7. Dim queryport As Integer = 51234 'Das Query Port
    8. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    9. client = New TcpClient
    10. Try
    11. client.Connect(IPAdresse, queryport) 'Verbindet zum TS2 server
    12. Catch ex As Exception
    13. MsgBox(ex.Message)
    14. Exit Sub
    15. End Try
    16. If client.Connected = True Then
    17. stream = client.GetStream()
    18. stream_r = New StreamReader(stream)
    19. stream_w = New StreamWriter(stream)
    20. Dim check As String = stream_r.ReadLine()
    21. If "[TS]".ToLower = check.ToLower Then 'Prüft ob es ein TS2 Server ist
    22. stream_w.WriteLine("cl " + port.ToString) 'Sendet die anfrage für die Cannels
    23. stream_w.Flush()
    24. Dim cl As String = ""
    25. Dim zeile As String = stream_r.ReadLine()
    26. While zeile.ToLower <> "OK".ToLower 'Liest so lan den Steam aus bist OK kommt
    27. cl += zeile + vbNewLine
    28. zeile = stream_r.ReadLine
    29. End While
    30. tren(cl)
    31. 'Schließt die Verbindung
    32. stream_w.Close()
    33. stream_r.Close()
    34. stream.Close()
    35. client.Close()
    36. End If
    37. End If
    38. End Sub
    39. Private Sub tren(ByVal code As String)
    40. Dim zeilen() As String = code.Split(vbNewLine) 'Zerteilt die Antwort in Zeilen
    41. For i As Integer = 1 To zeilen.Length - 1 'Geht die Zeilen ab. i ist des wegen 1 weil die Zeile 0 nur die Spalten Name beinhaltet.
    42. Dim info() As String = zeilen(i).Split(vbTab) 'Trennt die Zeile. Alle Infos sind mit einen Tab getrennt.
    43. If info.Length = 9 Then 'Das keine Fehler auftreten
    44. 'Ich hab einfach mal ein Listview genahmen
    45. Dim item As ListViewItem = ListView1.Items.Add(info(0)) 'ID
    46. item.SubItems.Add(info(1)) 'codec
    47. item.SubItems.Add(info(2)) 'parent
    48. item.SubItems.Add(info(3)) 'order
    49. item.SubItems.Add(info(4)) 'maxusers
    50. item.SubItems.Add(info(5)) 'name
    51. item.SubItems.Add(info(6)) 'flags
    52. item.SubItems.Add(info(7)) 'password
    53. item.SubItems.Add(info(8)) 'topic
    54. End If
    55. Next
    56. End Sub
    Die Telnet Variante:

    VB.NET-Quellcode

    1. Imports System.Net
    2. Imports System.Net.Sockets
    3. Imports System.Text
    4. Module Module1
    5. Dim TelnetSocket As Socket
    6. Sub Main()
    7. Dim ServerIP As String = InputBox("IPAdresse:", "IPAdresse", "79.170.193.54")
    8. Dim TelnetPort As String = InputBox("TelnetPort:", "TelnetPort", "51234")
    9. Dim TeamspeakPort As String = InputBox("TeamspeakPort:", "TeamspeakPort", "8768")
    10. If Connect(ServerIP, TelnetPort) = "[TS]" And SendCommand("sel " & TeamspeakPort) = "OK" Then
    11. Dim channels As String = ""
    12. For Each vbchannels In SendCommand("cl").Replace("id" + vbTab + "codec" + vbTab + "parent" + vbTab + "order" + vbTab + "maxusers" + vbTab + "name" + vbTab + "flags" + vbTab + "password" + vbTab + "topic", "").Split(vbNewLine)
    13. If vbchannels.Split(vbTab)(5) <> "" Then
    14. channels += vbchannels.Split(vbTab)(5).Replace(Chr(34), "") + ", "
    15. End If
    16. Next
    17. '------------------------'
    18. MsgBox(channels)
    19. '------------------------'
    20. Disconnect()
    21. Else
    22. MsgBox("Kein Teamspeak Server oder falsche Daten", MsgBoxStyle.Exclamation, "Fehler")
    23. Console.Clear()
    24. Disconnect()
    25. Main()
    26. End If
    27. End Sub
    28. Private Function SendCommand(ByVal command As String) As String
    29. Try
    30. If TelnetSocket.Connected = True Then
    31. Console.WriteLine("<=" & command)
    32. Dim SendedBytes As [Byte]() = Encoding.ASCII.GetBytes(command & vbCrLf)
    33. Dim ReciveBytes(255) As [Byte]
    34. Dim ReciveString As String = ""
    35. Dim NumBytes As Integer = 0
    36. TelnetSocket.Send(SendedBytes, SendedBytes.Length, SocketFlags.None)
    37. Do
    38. NumBytes = TelnetSocket.Receive(ReciveBytes, ReciveBytes.Length, 0)
    39. ReciveString = ReciveString + Encoding.ASCII.GetString(ReciveBytes, 0, NumBytes).Replace(vbNewLine, "")
    40. Loop While NumBytes = 256
    41. Console.WriteLine("=>" & ReciveString)
    42. Return ReciveString
    43. End If
    44. Catch ex As Exception
    45. MsgBox(ex.Message)
    46. Return ""
    47. Exit Function
    48. End Try
    49. Return ""
    50. End Function
    51. Public Sub Disconnect()
    52. Try
    53. Threading.Thread.Sleep(1000)
    54. TelnetSocket.Disconnect(False)
    55. Catch ex As Exception
    56. MsgBox(ex.Message)
    57. End Try
    58. End Sub
    59. Public Function Connect(ByVal ServerIP As String, ByVal TelnetPort As String) As String
    60. TelnetSocket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
    61. Try
    62. TelnetSocket.Connect(New IPEndPoint(IPAddress.Parse(ServerIP.Trim), CType(TelnetPort.Trim, Integer)))
    63. Threading.Thread.Sleep(3000)
    64. Dim ReciveBytes(255) As [Byte]
    65. Dim RecivvString As String = ""
    66. Dim NumerofBytes As Integer = 0
    67. Do
    68. NumerofBytes = TelnetSocket.Receive(ReciveBytes, ReciveBytes.Length, 0)
    69. RecivvString = RecivvString + Encoding.ASCII.GetString(ReciveBytes, 0, NumerofBytes).Replace(vbNewLine, "")
    70. Loop While NumerofBytes = 256
    71. Return RecivvString
    72. Catch ex As Exception
    73. MsgBox(ex.Message)
    74. Return ""
    75. End Try
    76. End Function
    77. End Module