Ergebnis 1 bis 3 von 3
  1. #1
    Anfänger
    Registriert seit
    22.07.2008
    Beiträge
    7

    Standard Textzeilen von FTP auslesen

    Neue Class erstellen:
    Imports System
    Imports System.IO
    Imports System.Net
    Imports System.Text
    Imports System.Threading
    Imports System.Net.Sockets
    Imports System.Collections.Generic

    Public Class Socks5
    Private socksClient As TcpClient
    Private serverClient As TcpClient
    Private SOCKS_VERSION As Byte = 5
    Private SOCKS_NOAUTH As Byte = 0
    Private SOCKS_REPLYSUCCESS As Byte = 0
    Private SOCKS_IPV4ADDR As Byte = 1
    Private SOCKS_DNSNAME As Byte = 3

    Public Sub New(ByVal client As TcpClient)
    socksClient = client
    End Sub

    Public Sub Work()
    Dim socksClientStream As NetworkStream = socksClient.GetStream()

    Dim authFields As Byte() = New Byte(1) {}
    socksClientStream.Read(authFields, 0, 2)

    Dim methods As Byte() = New Byte(authFields(1) - 1) {}
    socksClientStream.Read(methods, 0, methods.Length)

    Dim selectedAuthMethod As Byte() = {SOCKS_VERSION, SOCKS_NOAUTH}
    socksClientStream.Write(selectedAuthMethod, 0, 2)
    'tu le declare ou le port ? lol jai pas fait attention
    Dim requestFields As Byte() = New Byte(3) {}
    socksClientStream.Read(requestFields, 0, 4)

    Dim connection_target As String = ""
    Dim target_port As Integer
    If requestFields(3) = SOCKS_IPV4ADDR Then
    Dim target_data As Byte() = New Byte(3) {}
    socksClientStream.Read(target_data, 0, 4)
    Dim ip As New IPAddress(target_data)
    connection_target = ip.ToString()
    ElseIf requestFields(3) = SOCKS_DNSNAME Then
    Dim domainname_length As Byte() = New Byte(0) {}
    socksClientStream.Read(domainname_length, 0, 1)
    Dim target_data As Byte() = New Byte(domainname_length(0) - 1) {}
    socksClientStream.Read(target_data, 0, domainname_length(0))
    connection_target = Encoding.[Default].GetString(target_data)
    Else
    End If

    If connection_target <> "" Then

    Dim bintargetport As Byte() = New Byte(1) {}
    socksClientStream.Read(bintargetport, 0, 2)
    Dim tmp_byteorder As Byte() = New Byte(1) {}
    tmp_byteorder(0) = bintargetport(1)
    tmp_byteorder(1) = bintargetport(0)
    target_port = CInt(BitConverter.ToUInt16(tmp_byteorder, 0))

    serverClient = New TcpClient(connection_target, target_port)

    If serverClient.Connected Then
    Dim reply As Byte() = New Byte(9) {}
    reply(0) = SOCKS_VERSION
    reply(1) = SOCKS_REPLYSUCCESS
    reply(2) = 0
    reply(3) = 1
    Dim ip As String = serverClient.Client.LocalEndPoint.ToString().Split (":"c)(0)
    Dim ipaddr As IPAddress = IPAddress.Parse(ip)
    reply(4) = ipaddr.GetAddressBytes()(0)
    reply(5) = ipaddr.GetAddressBytes()(1)
    reply(6) = ipaddr.GetAddressBytes()(2)
    reply(7) = ipaddr.GetAddressBytes()(3)
    Dim port As UShort = UShort.Parse(serverClient.Client.LocalEndPoint.ToS tring().Split(":"c)(1))

    reply(8) = BitConverter.GetBytes(DirectCast(port, UInt16))(0)
    reply(9) = BitConverter.GetBytes(DirectCast(port, UInt16))(1)
    socksClientStream.Write(reply, 0, 10)

    Dim serverClientStream As NetworkStream = serverClient.GetStream()
    Dim ioError As Boolean = False
    While serverClient.Connected AndAlso socksClient.Connected AndAlso Not ioError
    System.Threading.Thread.Sleep(100)
    Try
    If socksClientStream.DataAvailable Then
    Dim readbuffer As Byte() = New Byte(9999) {}
    Dim count_read As Integer = socksClientStream.Read(readbuffer, 0, 10000)
    Dim read_data As Byte() = New Byte(count_read - 1) {}
    Array.Copy(readbuffer, read_data, count_read)
    serverClientStream.Write(read_data, 0, read_data.Length)
    End If
    If serverClientStream.DataAvailable Then
    Dim receivebuffer As Byte() = New Byte(9999) {}
    Dim count_receive As Integer = serverClientStream.Read(receivebuffer, 0, 10000)
    Dim receive_data As Byte() = New Byte(count_receive - 1) {}
    Array.Copy(receivebuffer, receive_data, count_receive)
    socksClientStream.Write(receive_data, 0, receive_data.Length)
    End If
    Catch
    ioError = True
    End Try
    End While

    ' try to close connections if yet connected
    If socksClient.Connected Then
    socksClient.Close()
    End If
    If serverClient.Connected Then
    serverClient.Close()
    End If
    Else
    End If
    Else
    End If
    End Sub
    End Class



    Form1 load oder halt einen Call:
    Imports System
    Imports System.IO
    Imports System.Net
    Imports System.Text
    Imports System.Threading
    Imports System.Net.Sockets
    Imports System.Collections.Generic
    Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim server As New TcpListener(1900) ' donc tu veut transfomer quoi ?
    server.Start()
    While True
    Dim client As TcpClient = server.AcceptTcpClient()
    Dim S As New Socks5(client)
    Dim T As New Thread(New ThreadStart(AddressOf S.Work))
    T.Start()
    End While
    End Sub
    End Class

  2. #2
    Super-Moderator Avatar von Southpark
    Registriert seit
    12.07.2008
    Beiträge
    1.062

    Standard

    Ne kleine Erklärung vll dazu?

    mfg Southi

  3. #3
    CIH-Virus Avatar von krusty
    Registriert seit
    12.10.2008
    Beiträge
    445

    Standard

    If socksClient.Connected Then
    socksClient.Close()
    End If
    If serverClient.Connected Then
    serverClient.Close()
    End If
    Else
    End If
    Else
    End If
    ^^ Mit der klasse kann man keinen Text vom FTP Server lesen, ich glaub da hat sich jemand verschreiebn =)

Ähnliche Themen

  1. Key auslesen
    Von eudia im Forum Anwendungssoftware
    Antworten: 8
    Letzter Beitrag: 28.07.2009, 21:28
  2. Textzeilen Permutation / VB.Net
    Von br00_pwn im Forum .NET Sprachen - Techniken
    Antworten: 18
    Letzter Beitrag: 26.06.2009, 07:35
  3. IP Auslesen
    Von RaZz0r im Forum VisualBasic
    Antworten: 3
    Letzter Beitrag: 16.08.2008, 13:26

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •