mit proxy kommunizieren



  • Hallo!

    Ich wollte ein Programm mit WinAPI schreiben, welches über einen Proxy-Server (Adresse hab ich) auf Internet-seiten/andere server usw. zugreifen kann.
    Nu hab ich aber nich so die peilung, wie das geht. Am liebsten würde ichs mit Winsock machen, oder es gibt schon vorgefertigte klassen dafür?
    Kann mir jemand kruz erklären, wie das auf die schnell geht, oder wonach ich suchen muss?



  • Steps in a Typical HTTP Client Application:
    http://msdn2.microsoft.com/en-us/library/8yh4zs9e.aspx

    Du musst keine MFC/ATL verwenden, dann kannst Du halt direkt auf die WinInet-Schnittstelle draufgehen...



  • hm... das problem is, dass ich über einen proxy mit telnet mit einem dritten server kommunizieren will. WinINet bietet aber nur ftp, gopher und http an. Wie kann ich es dann machen?



  • Für Telnet gibt es keinen Proxy... es sei denn Du hast einen SOCKS-Proxy...



  • also, ich versuchs ma zu erklären. Ich will von der Schule aus auf einen TelNet-Sever zugreifen. Mit putty geht das nur, wenn ich die IP-Adresse des Schulproxys bei den Proxy-Einstellungen eingebe und HTTP anklicke, sonst kommt auch putty nich drauf. Also dachte ich, dass da ein proxy zwischen stehn muss. Jetzt hab ich so ein Konstrukt gemacht:

    sockaddr_in a;
    a.sin_family = AF_INET;
    a.sin_port = htons((int)8080);
    unsigned long ip = inet_addr("192.168.xx.xx"); // IP des Schulservers
    a.sin_addr = *(in_addr*)&ip;
    m_sockaddr_in = a;
    nRet = connect(m_hSocket, (sockaddr*)&a, sizeof(sockaddr));
    
    // bis jetzt gehts gut
    strcpy(str, "CONNECT http://telnetserver.de/:4711 HTTP/1.1\n");
    int s = send(m_hSocket, str, strlen(str), 0);
    printf("%d bytes gesendet\n", s);
    
    // Dann bekomm ich diese Antwort:
    
    HTTP/1.1 403 Forbidden
    Date: Mon, 05 Dec 2005 06:52:27 GMT
    Content-Type: text/html
    Content-Length: 676
    Connection: close
    
    HTTP/1.1 403 Forbidden
    Date: Mon, 05 Dec 2005 06:52:27 GMT
    Content-Type: text/html
    Content-Length: 676
    Connection: close
    
    Rec sth!
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
    <HTML>
    <HEAD>
            <TITLE>403 Forbidden</TITLE>
    </HEAD>
    <BODY>
    <H1>403 Forbidden</H1>
    <P>
    Unknown host.
    <!--
      -- Padding to prevent MSIE from showing his own braindeath error messages! --
      -- Padding to prevent MSIE from showing his own braindeath error messages! --
      -- Padding to prevent MSIE from showing his own braindeath error messages! --
      -- Padding to prevent MSIE from showing his own braindeath error messages! --
      -- Padding to prevent MSIE from showing his own braindeath error messages! --
      -- Padding to prevent MSIE from showing his own braindeath error messages! --
    -->
    <HR>
    APLGW@LISS</BODY>
    </HTML>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
    <HTML>
    <HEAD>
            <TITLE>403 Forbidden</TITLE>
    </HEAD>
    <BODY>
    <H1>403 Forbidden</H1>
    <P>
    Unknown host.
    <!--
      -- Padding to prevent MSIE from showing his own braindeath error messages! --
      -- Padding to prevent MSIE from showing his own braindeath error messages! --
      -- Padding to prevent MSIE from showing his own braindeath error messages! --
      -- Padding to prevent MSIE from showing his own braindeath error messages! --
      -- Padding to prevent MSIE from showing his own braindeath error messages! --
      -- Padding to prevent MSIE from showing his own braindeath error messages! --
    -->
    <HR>
    APLGW@LISS</BODY>
    </HTML>
    

    // wenn ich die Adresse so angebe:
    CONNECT telnetserver.de:4711 HTTP/1.1

    dann bringt er mir einen Internal-Server-Error

    Was kann ich denn jetzt m,achen?



  • Frag doch den Admin des Proxy-Servers, warum er das nicht kann...



  • braucht der server eine authentifizierung!?

    evtl. liegt es daran, error 403 - forbidden. könnte das das problem sein 😕

    MfG Mailmaster



  • Die meisten Proxy-Server lassen kein "CONNECT" zu... deswegen auch "Forbidden" sonst würde ja ein "Authentication Required" kommen...



  • kannst du mir mal sagen wo man info's zu proxy authentifizierung herbekommt?
    in meiner firma benötigt man das für http abfragen. möchte das dann gerne in meine netzwerkklasse mit integrieren.

    MfG Mailmaster



  • Warum verwendest Du nicht WinInet? Da ist schon alles drin...

    Proxy-Authentication: http://rfc.sunsite.dk/rfc/rfc2617.html



  • danke für deinen rfc link 🙂

    ich habe einfach mal angefangen eine netzwerkklasse zu schreiben, da mich interessiert hat was man damit alles machen kann. nun wird die eben immer größer und größer und soll nicht nur auf dem standard senden empfangen von daten bleiben. wird für mich eben eine universell einsetzbare klasse, was auch kommt. klar könnt ich die fertigen sachen auch nehmen, aber das wäre ja langweilig 😃

    selbermachen, macht den meister :p
    und nur so versteht mans auch richtig (wie ich finde)

    MfG Mailmaster


Log in to reply