Seite 3 von 4

Verfasst: 05.09.2007 10:01
von Kukulkan
Hallo,

Das was Du machen möchtest, lässt sich mit dem JANA-Server als Web-Proxy erreichen. Allerdings müsstet Ihr dann einen Server als Proxy einrichten.

http://www.janaserver.de/

Es ist auch eine Zeitsteuerung und Zugriffs-Beschränkung von einzelnen Clients einstellbar. Geht alles sehr Einfach. Habe den sogar in drei Unternehmen am laufen und alle sind zufrieden.

Volker

Verfasst: 05.09.2007 18:10
von coder
@PureBasic4.0
Kenne das Problem, dass hat mein Vater auch gemacht.. :(
Hab mich aber mal ran gemacht und den Atomic HTTP-Server so modifiziert das man ihn als HTTP-Proxy nutzen kann! Natürlich total unsichtbar :twisted:

(Anmerkung: -nicht sauber Programmiert -Post-Funktion nicht implantiert)

Du könntest natürlich auch einen anderen Proxy benutzen und alle Api-Befehle für SysTray/Window und sonstige Visuelle Sachen hooken und damit aushebeln... (Ist natürlich sehr sehr sehr ... sehr aufwednig)

Hier mal der Coder von meinem Proxy:

Code: Alles auswählen



#File_Log = 2

#Log$ = "Log.log"
#Temp$ = "Temp"
#Error$ = "Error.html"

Procedure WriteLog(Text$)
  ProcedureReturn WriteStringN(#File_Log, FormatDate("%dd.%mm.%yyyy - %hh:%ii:%ss    ", Date())+Text$)
EndProcedure

Procedure DL(URL$, File$)
  ProcedureReturn URLDownloadToFile(URL$, File$)  ;--Bitte auf ändern!!
EndProcedure

If Not OpenFile(#File_Log, #Log$)
  End
EndIf

FileSeek(#File_Log, Lof(#File_Log))

If InitNetwork() = 0
  writelog("Can't initialize the network !")
  End
EndIf

Port = 8080
WriteLog("Port: "+Str(Port))

Global EOL$

EOL$ = Chr(13)+Chr(10)

*Buffer = AllocateMemory(10000)

If CreateNetworkServer(0, Port)
  
  WriteLog("Server gestartet")
  
  Repeat
    
    Repeat
      WEvent = WindowEvent()

      If WEvent = #PB_Event_CloseWindow : Quit = 1 : EndIf
    Until WEvent = 0
    
    SEvent = NetworkServerEvent()
  
    If SEvent
      ClientID.l = EventClient()
  
      Select SEvent
      
        Case 1  ; When a new client has been connected...
          
        Case 4  ; When a client has closed the connection...
  
        Default
          RequestLength.l = ReceiveNetworkData(ClientID, *Buffer, 2000)
          Gosub ProcessRequest
          
      EndSelect

    Else
      Delay(20)  ; Don't stole the whole CPU !
    EndIf
    
  Until Quit = 1 
    
  CloseNetworkServer(0)
Else
  WriteLog("Error: can't create the server (port in use ?).")
EndIf
  
End 



Procedure.l BuildRequestHeader(*Buffer, DataLength.l, ContentType$)

  Length = PokeS(*Buffer, "HTTP/1.1 200 OK"+EOL$)                     : *Buffer+Length
  Length = PokeS(*Buffer, "Date: Wed, 07 Aug 1996 11:15:43 GMT"+EOL$) : *Buffer+Length
  Length = PokeS(*Buffer, "Server: Atomic Web Server 0.2b"+EOL$)      : *Buffer+Length
  Length = PokeS(*Buffer, "Content-Length: "+Str(DataLength)+EOL$)    : *Buffer+Length
  Length = PokeS(*Buffer, "Content-Type: "+ContentType$+EOL$)         : *Buffer+Length
  Length = PokeS(*Buffer, EOL$)                                       : *Buffer+Length

  ; Length = PokeS(*Buffer, "Last-modified: Thu, 27 Jun 1996 16:40:50 GMT"+Chr(13)+Chr(10)  , *Buffer) : *Buffer+Length
  ; Length = PokeS(*Buffer, "Accept-Ranges: bytes"+EOL$                 , *Buffer) : *Buffer+Length
  ; Length = PokeS(*Buffer, "Connection: close"+EOL$) : *Buffer+Length

  ProcedureReturn *Buffer
EndProcedure


ProcessRequest:

  a$ = PeekS(*Buffer)

  If Left(a$, 3) = "GET"

    MaxPosition = FindString(a$, Chr(13), 5)
    Position = FindString(a$, " ", 5)
    If Position < MaxPosition
      RequestedFile$ = Mid(a$, 5, Position-5)      ; Automatically remove the leading '/'
      RequestedFile$ = RTrim(RequestedFile$)
    Else
      RequestedFile$ = Mid(a$, 6, MaxPosition-5)   ; When a command like 'GET /' is sent..
    EndIf
      
      Debug RequestedFile$
      
      If FindString(LCase(RequestedFile$), "server.shutdown", 0)
        WriteLog("Server wird beended")
        End
      EndIf
      
      DL(RequestedFile$, #Temp$)
      WriteLog(IPString(GetClientIP(ClientID))+" request "+RequestedFile$)
      ; Test if the file exists, and if not display the error message
      ;   

      If ReadFile(0, #Temp$)
      
        FileLength = Lof(0)
        
        Ext$ = LCase(GetExtensionPart(StringField(RequestedFile$, 1, "?")))
        
        Select Ext$
          Case "gif"
            ContentType$ = "image/gif"

          Case "jpg"
            ContentType$ = "image/jpeg"

          Case "txt"
            ContentType$ = "text/plain"

          Case "zip"
            ContentType$ = "application/zip"
            
          Case "html"
            ContentType$ = "text/html"
            
          Case "htm"
            ContentType$ = "text/html"
          
          Case "php"
            contentType$ = "text/html"

          Default
            ContentType$ = "application/"+ext$

        EndSelect
        
        *FileBuffer   = AllocateMemory(FileLength+200)
        *BufferOffset = BuildRequestHeader(*FileBuffer, FileLength, ContentType$)

        ReadData(0, *BufferOffset, FileLength)

        CloseFile(0)
 
        SendNetworkData(ClientID, *FileBuffer, *BufferOffset-*FileBuffer+FileLength)
        FreeMemory(*FileBuffer)
      Else
        If ReadFile(0, #Error$)
          FileLength = Lof(0)
          ContentType$ = "text/html"

          *FileBuffer   = AllocateMemory(FileLength+200)
          *BufferOffset = BuildRequestHeader(*FileBuffer, FileLength, ContentType$)

          ReadData(0, *BufferOffset, FileLength)
          CloseFile(0)
   
          SendNetworkData(ClientID, *FileBuffer, *BufferOffset-*FileBuffer+FileLength)
          FreeMemory(*FileBuffer)
        EndIf
      EndIf
  EndIf
  
  DeleteFile(#Temp$)
  
Return

Verfasst: 06.09.2007 14:47
von PureBasic4.0
@coder: wow - da kommt ne meennnggee arbeit auf mich zu

Verfasst: 06.09.2007 16:34
von hardfalcon
Ich denke, ein Hardware-Reset des Routers (bzw des Geräts mit der Firewall) wäre weitaus praktikabler... :roll:

hmmm

Verfasst: 06.09.2007 16:50
von R4z0r1989
ja schon aber manche leute wie ich haben das problem dass wenn sie einfach hinten auf den reset knopf drücken die daten futsch sind und die hab ich ned!!!

Da hab ich mich lieber mal nen Tag hingesetzt und hab am Router passwörter durchprobiert, und siehe da es hat geklappt!

jetzt bin ich herr über mein internet!!!

Verfasst: 08.09.2007 12:01
von Nefti
entweder ich steh auf dem schlauch oder ich hab das problem net richtig verstanden.
warum willst du den proxy-server unbedingt auf dem PC deines vaters laufen lassen?
nimm einfach einen public-proxy (dein isp besitzt sowas sicher) der nicht auf port 80 läuft (die meisten laufen eh auf 8080 oder 3128)

solche proxyserver findest du im google oder z.b hier: http://www.publicproxyservers.com/page1.html

Verfasst: 08.09.2007 14:59
von jpd
Hi Nefti,

und wie soll das funktionieren??

der weg mit den proxy auf vaters rechner ist schon der richtige!

jpd

Verfasst: 08.09.2007 22:59
von Nefti
kann man auch machen, macht aber wenig sinn

vaters rechner hängt ja vor dem router, d.h wenn er mit alternativen ports auf diesen rechner kommt, dann kommt auch mit alternativen ports raus ins netz.
also ist der weg über vaters rechner prinzipiell unnötig.

was du natürlich auch noch machen kannst ist einen keylogger auf vaters rechner zu installieren und ihn dann dazu zu bringen sich am router einzuloggen :-)

Verfasst: 08.09.2007 23:54
von jpd
Hi Nefti,

so wie ich verstehe ist der w-lan/router für PC2 beschränkt, das bedeutet kein weg zum internet über standard gateway und keine nahmensauflösung....


PC1 (papi) ist im netz aber kann nicht als gateway zum internet dienen da es möglicherweise kein sharing der verbindung konfiguriert ist! ... also kein weg zum internet..


also mögliche lösungen...

1 Profi proxy server verwenden (jana) super teil.
2 selbgemacht ... coder :allright:

3 a la Badboy99: :lol:
Da hab ich mich lieber mal nen Tag hingesetzt und hab am Router passwörter durchprobiert, und siehe da es hat geklappt!

jetzt bin ich herr über mein internet!!!


4 wie du gerade sagst keylogger...


ist es eigentlich nicht einfacher papa klar zu machen das
die stunde Internet pro tag nicht ausrreichend ist ??

Ciao
jpd

Verfasst: 09.09.2007 01:14
von Nefti
PureBasic4.0 hat geschrieben:es ist nur port 80 (Browser) und port 21 (FTP) geblockt. alles andere ist frei
das sagt mir, dass namensauflösung, usw. funzt