AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi socks5 verbindung testen
Thema durchsuchen
Ansicht
Themen-Optionen

socks5 verbindung testen

Ein Thema von BBoy · begonnen am 10. Nov 2009 · letzter Beitrag vom 13. Nov 2009
Antwort Antwort
BBoy

Registriert seit: 17. Jan 2007
418 Beiträge
 
Delphi 10 Seattle Professional
 
#1

socks5 verbindung testen

  Alt 10. Nov 2009, 14:13
Ich habe 3 gute Proxys die leider nicht immer online sind. Daher würde ich mir gerne ein Tool PRogrammieren dass z.B. alle 10 minuten testet ob einer der Proxys verfügbar ist. Ein Socks5 Proxy ist mit Authentifizierung die anderen ohne. Wobei einer glaube ich auch nur Socks4 ist.

Weis jemand wie ich das Programmieren könnte in Delphi 2007 ?
Danke.
mfg
  Mit Zitat antworten Zitat
uoeb7gp
(Gast)

n/a Beiträge
 
#2

Re: socks5 verbindung testen

  Alt 10. Nov 2009, 21:45
Versuchs mit folgendem Code.

[delphi]

uses
.., winsock;


function CanListen(Port: DWORD): Boolean;
var
Name : TSockAddr;
nRet : Integer;
Socket : TSocket;
WSData : TWSAData;
begin
result := False;
WSAStartup($0101, WSData);
try
Socket := WinSock.Socket(PF_INET, SOCK_STREAM, IPPROTO_IP);
try
if Socket<>INVALID_SOCKET then begin
ZeroMemory(@Name,SizeOf(TSockAddr));
with Name do begin
sin_Family := PF_INET;
sin_Port := htons(Port);
sin_Addr := TInAddr(htonl(INADDR_ANY));
end;
nRet := Bind(Socket, Name, SizeOf(Name));
if (nRet <> SOCKET_ERROR) then
result := (WinSock.Listen(Socket,SOMAXCONN) <> SOCKET_ERROR);
end;
finally
if Socket <> INVALID_SOCKET then
CloseSocket(Socket);
end;
finally
WSACleanup;
end;
end;
  Mit Zitat antworten Zitat
uoeb7gp
(Gast)

n/a Beiträge
 
#3

Re: socks5 verbindung testen

  Alt 10. Nov 2009, 22:00
[delphi][center]

für remoteServer folgender Code

function _CheckCon(const IP:string):boolean;
var
ClientSocket : TSocket;
Name : TSockAddr;
WSData : TWSAData;
begin
result:=false;
WSAStartup($0101,WSData); // WinSock v1.1
ClientSocket := WinSock.Socket(PF_INET,sock_Stream,IPPROTO_IP);
if (ClientSocket <> Invalid_Socket) then begin
with Name do begin
sin_Family := PF_INET;
sin_Port := htons(139); // die Portnummer des Servers
sin_Addr := TInAddr(Inet_Addr(PChar(IP))); // inet_addr in in_addr umwandeln
end;
result:=(Connect(ClientSocket,Name,SizeOf(Name))<> Socket_Error); // connection zum Server aufbauen
end;
CloseSocket(ClientSocket);
WSACleanup;
end;
  Mit Zitat antworten Zitat
BBoy

Registriert seit: 17. Jan 2007
418 Beiträge
 
Delphi 10 Seattle Professional
 
#4

Re: socks5 verbindung testen

  Alt 11. Nov 2009, 19:46
hmmm, wo gebe ich da die ip des socks5 an? und den username und passwort?
  Mit Zitat antworten Zitat
xxl1

Registriert seit: 21. Apr 2006
88 Beiträge
 
FreePascal / Lazarus
 
#5

Re: socks5 verbindung testen

  Alt 11. Nov 2009, 19:56
Delphi-Quellcode:
with Name do begin
sin_Family := PF_INET;
sin_Port := htons(139); // die Portnummer des Servers (hier des Socks5 Servers)
sin_Addr := TInAddr(Inet_Addr(PChar(IP))); // IP Adresse des Socks5 Servers für ip einsetzen z.b '192.168.1.155'
den benutzernamen und das passwort kann man hier noch nirgends eingeben weil du dafür ein protokoll bräuchtest, was du dir entweder selber schreiben musst oder dir ne gute quelle suchen musst

Mit dem von den zwei anderen geposteten Code überprüfst du nur ob der Server auf der IP-Adresse in kombination mit dem Port lauscht... was ja reichen könnte
-> Verbindung kann hergestellt werden -> Proxy online
-> Verbindungstimeout -> Proxy offline
  Mit Zitat antworten Zitat
BBoy

Registriert seit: 17. Jan 2007
418 Beiträge
 
Delphi 10 Seattle Professional
 
#6

Re: socks5 verbindung testen

  Alt 11. Nov 2009, 20:19
ich habe den code jetzt so:
Delphi-Quellcode:
function CanListen(Port: DWORD): Boolean;
var
Name : TSockAddr;
nRet : Integer;
Socket : TSocket;
WSData : TWSAData;
begin
result := False;
WSAStartup($0101, WSData);
try
Socket := WinSock.Socket(PF_INET, SOCK_STREAM, IPPROTO_IP);
try
if Socket<>INVALID_SOCKET then begin
ZeroMemory(@Name,SizeOf(TSockAddr));
with Name do begin
sin_Family := PF_INET;
sin_Port := htons(3541); // die Portnummer des Servers (hier des Socks5 Servers)
sin_Addr := TInAddr(Inet_Addr(PChar('98.206.10.111'))); // IP Adresse des Socks5 Servers für ip einsetzen z.b '192.168.1.155'
end;
nRet := Bind(Socket, Name, SizeOf(Name));
if (nRet <> SOCKET_ERROR) then
result := (WinSock.Listen(Socket,SOMAXCONN) <> SOCKET_ERROR);
end;
finally
if Socket <> INVALID_SOCKET then
CloseSocket(Socket);
end;
finally
WSACleanup;
end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
 if canlisten(3541) = true then
 showmessage('online');
end;
aber die showmessage zeigt er nicht an, also wäre der proxy nicht online, ist er aber. ihr könnte das ja testen, die ip ist eingetragen,
  Mit Zitat antworten Zitat
BBoy

Registriert seit: 17. Jan 2007
418 Beiträge
 
Delphi 10 Seattle Professional
 
#7

Re: socks5 verbindung testen

  Alt 11. Nov 2009, 22:43
ich habe auch die indy und die overbyte ics componenten. Geht es damit besser?

mit ics habe ich folgendes gemacht:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
    WSocket1.Proto := 'tcp';
    WSocket1.Port := '80';
    WSocket1.addr := 'google.de';
    WSocket1.socksPort := '3541';
    WSocket1.socksserver:= '98.206.11.111';
    WSocket1.Connect;

end;

procedure TForm1.WSocket1Error(Sender: TObject);
begin
showmessage('fehler');
end;

procedure TForm1.WSocket1SessionConnected(Sender: TObject; ErrCode: Word);
begin
    Memo1.Lines.Add('Session connected to remote host.');

end;

procedure TForm1.WSocket1SocksConnected(Sender: TObject; ErrCode: Word);
begin
   Memo1.Lines.Add('Session connected to socks server.');
end;

procedure TForm1.WSocket1SocksError(Sender: TObject; Error: Integer;
  Msg: string);
begin
    Memo1.Lines.Add('Socks error #' + IntToStr(Error) + ' ' + Msg);
end;

end.
problem ist, dass auch dann wenn der socks ungültig ist (egal welche ip/port ich eingebe) immer erscheint das es durch den socks zum host connected hat, ansonsten wäre es genaus das was ich suche.
  Mit Zitat antworten Zitat
xxl1

Registriert seit: 21. Apr 2006
88 Beiträge
 
FreePascal / Lazarus
 
#8

Re: socks5 verbindung testen

  Alt 12. Nov 2009, 16:44
Delphi-Quellcode:
var
Name : TSockAddr;
nRet : Integer;
Socket : TSocket;
WSData : TWSAData;
begin
result := False;
WSAStartup($0101, WSData);
try
Socket := WinSock.Socket(PF_INET, SOCK_STREAM, IPPROTO_IP);
try
if Socket<>INVALID_SOCKET then begin
ZeroMemory(@Name,SizeOf(TSockAddr));
with Name do begin
sin_Family := PF_INET;
sin_Port := htons(3541); // die Portnummer des Servers (hier des Socks5 Servers)
sin_Addr := TInAddr(Inet_Addr(PChar('98.206.10.111'))); // IP Adresse des Socks5 Servers für ip einsetzen z.b '192.168.1.155'
end;
{nRet := Bind(Socket, Name, SizeOf(Name));
if (nRet <> SOCKET_ERROR) then
result := (WinSock.Listen(Socket,SOMAXCONN) <> SOCKET_ERROR);
end;     }
      // Bind+ Listen brauchst du nur wenn du deinen Socket an einen
                // bestimmten Port binden willst und drauf lauschen! Ein
                // Serverprogramm also, das du hier wohl nicht willst
                // stattdessen wohl solltest du mit Connect arbeiten wie oben!
deine_variable:=(Connect(Socket,Name,SizeOf(Name))<>Socket_Error); // connection zum Server aufbauen
Edit: Guck dir vllt auch mal connect im MSDN an!
es sollte eigentlich zu unterscheiden sein ob du einen verbindung herstellen kansnt oder nicht
  Mit Zitat antworten Zitat
BBoy

Registriert seit: 17. Jan 2007
418 Beiträge
 
Delphi 10 Seattle Professional
 
#9

Re: socks5 verbindung testen

  Alt 13. Nov 2009, 12:33
ok, so funktioniert es jetzt gut. Danke.
Kann ich noch irgendwie die Timeout zeit einstellen, also wie lange auf antwort gewartet werden soll?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz