AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Internet-Zugriff via Proxy (squid)
Thema durchsuchen
Ansicht
Themen-Optionen

Internet-Zugriff via Proxy (squid)

Offene Frage von "Svenska"
Ein Thema von Svenska · begonnen am 9. Jan 2006 · letzter Beitrag vom 14. Dez 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Svenska
Svenska

Registriert seit: 9. Jan 2006
Ort: Brandenburg
4 Beiträge
 
#1

Internet-Zugriff via Proxy (squid)

  Alt 9. Jan 2006, 20:01
Hallo,

ich möchte mit Delphi 7 Internetprogrammierung machen, es funktioniert auch soweit ganz gut (ClientSocket und ServerSocket). Allerdings auch in der Schule und da gibt es Probleme:

Wir können dort zwar Software installieren, aber das ist umständlich und muss nach jedem Rechnerneustart erneut gemacht werden, außerdem muss das Programm jedesmal runtergeladen werden (wir können keine .exe Dateien auf dem Homelaufwerk speichern, außerdem hat das nur 15 MB). Und wir haben in der Schule einen Proxy-Server (einen Squid auf Port 3128).

Wie kann ich jetzt über diesen Proxy eine Verbindung ins Internet herstellen?
Mit putty.exe kann ich auf alle Internetprotokolle zugreifen (HTTP, FTP, ICQ, IRC wären wichtig), jedenfalls gibt es eine Verbindung und ich kann mit dem Server kommunizieren (über ICQ schwierig). Aber wie kriege ich das mit Delphi 7 hin, unter Verwendung der Standardkomponenten?

Ich möchte nämlich einen kleinen IRC-Clienten im Informatikunterricht schreiben, aber zum Vorführen muss es in der Schule klappen - und daran scheitert es. Indys fallen leider raus.

Soweit ich weiß, muss ich dazu eine Verbindung zum Proxy direkt herstellen und dem dann mitteilen, zu welchem Server ich mich verbinden will; wenn mir einer hierzu ein Tutorial oder ein Howto geben könnte, würd ich mich sehr freuen.

MfG
Svenska
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Internet-Zugriff via Proxy (squid)

  Alt 9. Jan 2006, 22:23
Was meinst du mit Standardkomponenten? Bei den Indykomponenten gibt es z.B. die Klasse TIdConnectThroughHttpProxy.
Die Klasse THTTPSend aus dem OS-Paket Synapse hat direkt Properties für die Proxyeinstellungen.
Der Squid ist aber nur Proxy(Stellvertreter) für die Protokolle http, https, ftp. Andere Protokolle müssen ggf über diese Protokolle "getunnelt" werden.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Svenska
Svenska

Registriert seit: 9. Jan 2006
Ort: Brandenburg
4 Beiträge
 
#3

Re: Internet-Zugriff via Proxy (squid)

  Alt 9. Jan 2006, 22:40
Hallo,

ich hab doch geschrieben, dass Indys nicht gehen....?!?
Standardkompontenten = TServerSocket, TClientSocket.

Meine Frage war nur, wie ich über den Proxy eine direkte Verbindung zu einem Server aufbauen kann, also z.B. IRC über ebendiesen Proxy betreiben kann.

Gruß,
Svenska
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Internet-Zugriff via Proxy (squid)

  Alt 9. Jan 2006, 23:13
Zitat von Svenska:
Meine Frage war nur, wie ich über den Proxy eine direkte Verbindung zu einem Server aufbauen kann, also z.B. IRC über ebendiesen Proxy betreiben kann.

Gruß,
Svenska
Über einen Proxy kannst du keine direkten Verbindungen aufbauen. Ein Proxy sendet als Folge einer Anfrage von einem Client eine weitere Anfrage an das eigentliche Ziel ( Absender-Adresse+Prt sind IP/port des Proxies) und leitet die Antwort des Zielservers an den Client zurück ( Es gibt also 2 Verbindugen: Client<->Proxy + Proxy<->Zielserver).
Der Proxy versteht wie gesagt nur ein paar Protokolle. Andere Protokolle müssen ggf "getunnelt" werden. D.H du brauchst einen Server im Internet der dir IRC nach HTTP vermittelt.

Zitat:
Mit putty.exe kann ich auf alle Internetprotokolle zugreifen (HTTP, FTP, ICQ, IRC wären wichtig)
Putty stellt über die Protokolle ssh oder telnet eien Verbindung mit dem Server her, auf welchem der putty läuft.
Programme die dann in putty gestartet werden laufen auf dem Gatewayrechner, welcher direkt auf Internet zugreift. Willst kannst also einen eigenen Proxy für die gewollten Protokolle schreiben.
Markus Kinzler
  Mit Zitat antworten Zitat
Basilikum

Registriert seit: 9. Aug 2003
389 Beiträge
 
Delphi 7 Professional
 
#5

Re: Internet-Zugriff via Proxy (squid)

  Alt 10. Jan 2006, 00:11
es gibt sehr wohl die Möglichkeit, via Proxy eine direkte Verbindung zu einem Ziel-TCP-Server aufzubauen: HTTP-Request-Method "CONNECT"

diese wird auch verwendet, um ein durchgehendes SSL-Tunnel vom Browser bis zum Server - auch via Proxy (aber nicht als Man-In-The-Middle) - aufzubauen...

Client:
CONNECT www.domain.com:443 HTTP/1.0

Server:
HTTP/1.0 200 OK

nach der Antwort vom Proxy besteht eine direkte, transparente Verbindung zum eigentlichen Server...

der Haken an der Sache: "gute" Proxy-Admins erlauben die CONNECT-Methode lediglich auf Well-Known-Ports wie z.B. 443 (HTTPS)...

RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1
  Mit Zitat antworten Zitat
Benutzerbild von Svenska
Svenska

Registriert seit: 9. Jan 2006
Ort: Brandenburg
4 Beiträge
 
#6

Re: Internet-Zugriff via Proxy (squid)

  Alt 10. Jan 2006, 09:27
Hallo,

mit putty.exe kann ich nur eine Verbindung zu Servern herstellen, wenn ich den Proxy dort eintrage.

Also muss ich zum Proxy im Prinzip eine HTTP-Verbindung herstellen, kann dann aber alle möglichen Binärdaten/Textdaten mit jedem Protokoll auf jedem Port durchführen?

Ich werde den Vorschlag gleich mal ausprobieren.
Danke einstweilen!

Es funktioniert, danke vielmals! Ich hatte nicht gedacht, dass man das über ein (zurechtgestutztes) HTTP machen muss. Jedenfalls kann ich mich prima zu irc.quakenet.org:6667 und login.icq.com:5190 verbinden, geh also mal davon aus, dass der Server-Admin schlecht ist.

Gruß,
Svenska
  Mit Zitat antworten Zitat
monXii

Registriert seit: 30. Nov 2008
Ort: Verl
11 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Internet-Zugriff via Proxy (squid)

  Alt 13. Dez 2008, 20:15
ich habe ähnliches vor..
habe aber garkeinen ansatz wie ich es realisieren soll..

also ich will über einen proxy auf einen IRC-Server connecten..
die posts hier drüber konnten mir nicht weiter helfen..
ich habe es schonmal mit der Indy Komponente IdIRC versucht..
so alles ganz schön und gut.. nur finde ich dort keine proxy einstellungsmöglichkeiten..
jetz dachte ich das das ja auch irgendwie anders gehen muss..
weil damals habe ich das mal in MSL (mirc scripting language) mit sockets geschafft..

hoffe mir kann jmd helfen..



EDIT:
oder sollte ich lieber n neuen thread aufmachen? =)
  Mit Zitat antworten Zitat
SirTwist

Registriert seit: 28. Sep 2006
198 Beiträge
 
Delphi XE Professional
 
#8

Re: Internet-Zugriff via Proxy (squid)

  Alt 14. Dez 2008, 09:43
Die üblichen Proxies sprechen eigentlich nur HTTP, HTTPs und vielleicht noch FTP. In kommerziellen CLients wie mIRC sind natürlich passende Erweiterungen drin, dass mIRC zum Proxy hin HTTP spricht und den Proxy bittet, eine transparente VErbindung zur Zieladresse durchzuschalten. Erst in diesem transparenten Kanal spricht mIRC dann IRC.

Wäre es nicht viel einfacher, den Admin zu bitten, den Port 6666 freizuschalten? Dann kann man einfach so ircen ohne endlos viel Zeit in irgendwelche Proxyprogrammierung zu stecken.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Internet-Zugriff via Proxy (squid)

  Alt 14. Dez 2008, 11:21
Ein Proxy (Stellvertreter) arbeitet auf Ebene 7 (IP Ebene 5). Er muss also pro Protokoll implemnetiert werden. Eine Freischaltung des Ports verstösst höchstwahrscheinlich der Sicherheitrichtlinien des Unternehmens. Besser wäre eine Tunnelung.
Markus Kinzler
  Mit Zitat antworten Zitat
SirTwist

Registriert seit: 28. Sep 2006
198 Beiträge
 
Delphi XE Professional
 
#10

Re: Internet-Zugriff via Proxy (squid)

  Alt 14. Dez 2008, 12:32
Hi mkinzler,
Zitat von mkinzler:
Ein Proxy (Stellvertreter) arbeitet auf Ebene 7 (IP Ebene 5). Er muss also pro Protokoll implemnetiert werden. Eine Freischaltung des Ports verstösst höchstwahrscheinlich der Sicherheitrichtlinien des Unternehmens. Besser wäre eine Tunnelung.
Das mit dem Verstoß gegen die Sicherheitsrichtlinien ist mir schon klar ;-) Nur dann verstößt die selbst geschaffene Tunnelung eines nicht gewünschten Protokolls erst recht gegen die Richtlinie - unabhängig davon, ob es technisch möglich ist oder nicht.

Eine konstruktive Antwort auf die ursprüngliche Frage ist also in 80% der Fälle die Anleitung, die Richtlinie zu umgehen, sei es in der Schule, Uni, zuhause oder in einer Firma. Die restlichen 20% würde ich dösigen Admins zuschreiben, die nicht wissen, wie sie mit Firewall/Proxy umgehen können.

Nebenbei: am einfachsten ist es, irgendwo draußen im Netz einen SSH-Server auf Port 443 laufen zu lassen, dann kann ich mich darauf verbinden und innerhalb der SSH-Verbindung so ziemlich jeden anderen TCP-Connect durchtunneln.

Gruß,
SirTwist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:04 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