PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Suche Codesnippet, um auf TeamSpeak Server zu connecten



H4x0r007
31.01.2008, 16:17
Hi,

ich suche einen kleinen Codeausschnitt, mit dem man sich auf TeamSpeakServer verbinden kann.
Sowas hier möchte ich nicht machen:

ShellExecute(NULL,"open","teamspeak://TSIP:Port?nickname=nickname1?loginname=loginname?p assword=password",NULL,NULL,SW_SHOWNORMAL);

Das ganze sollte über Sockets gehen.

thx,
H4x0r007

rob00n
31.01.2008, 16:50
2 möglichkeiten:

1. pakete mitsniffen und dann genauso nur mit veränderten daten (nick, pw usw) verschicken
2. tspeakfp (teamspeak fake player flooder) von aluigi (google) anschauen, da wird das ganze mit joinen in C perfekt umgesetzt und sogar verständlich

H4x0r007
31.01.2008, 19:59
als ob ich das noch nicht gelesen hätte ;-) Ich habe den Thread dort auch aufgemacht

Ich dachte, vielleicht hat jemand noch einen anderen Vorschlag

speX
24.02.2008, 19:02
Naja, ich habe kein Codesnipet. Aber hast du es schon mal Socketprogrammierung zu tun? Damit kriegst du wirklich alles hin =)

grüße :D

Added after 12 hours 22 minutes:


#include <iostream>
#include <windows.h>
#include <string>


#pragma comment (lib,"WS2_32.lib")

using namespace std;



class bf{
public: int socket_start();
int socket_close();
int socket_work();
int menu();
int w_list();
int b_force();
SOCKET s;
SOCKADDR_IN addr;
long back;
string s_send;
char c_reciv[255];


};


int main(){
bf a;
a.socket_work();
system("pause");
return 0;
}

int bf::socket_start()
{
WSAData w;
return(WSAStartup(MAKEWORD(2,0),&w));
}

int bf::socket_close(){
closesocket(s);
return 0;
}

int bf::socket_work(){
back = bf::socket_start();
if(back != 0)
{
cout<<"Socket konnte nicht angefordert werden"<<endl;
}
else
{
cout<<"Socket wurde erfolgreich angefordert"<<endl;
}
s = socket(AF_INET, SOCK_STREAM,0);
if(s == INVALID_SOCKET)
{
cout<<"Socket konnte nicht erstellt werden"<<endl;
}
else
{
cout<<"Socket wurder erflogreich erstellt"<<endl;
}
addr.sin_family = AF_INET;
addr.sin_port = htons(80); //<<---- TS PORT
addr.sin_addr.s_addr = inet_addr("Dein_HOST"); //<<---TS Host

back = connect(s,(SOCKADDR*)&addr,sizeof(SOCKADDR));
if(back == SOCKET_ERROR)
{
cout<<"Konnte nicht mit Host verbunden werden "<< WSAGetLastError() <<endl;
}
else
{
cout<<"Verbindung zum Host steht..."<<endl;
}


bf::socket_close();
return 0;
}

Das ist zwar ein kleiner Auszug aus einem Projekt von mir, aber eigentlich müsste es das selbe sein =)

Grüße

PS: Sorry für den Doppelpost :'(

H4x0r007
25.02.2008, 16:36
Das schwierige ist ja eher den string zu erstellen, den du an den Server schicken musst, damit es heißt "player joined".
Die Socket-Verbindung kann ich ja

speX
25.02.2008, 18:51
hm, naja wenn dir schon einer versucht zu helfen, dann kannst du dich auch dankbarer zeigen :twisted:

Aber da ich nicht so bin....

Also ich denke mal so schwer wird es ncht sein. Eigentlich brauchst du nur zu wissen wie dein Client mit dem Host komuniziert. Dazu müsstest du den Verkehr sniffen und dann mit send und reciv arbeiten.