Connexion ftp avec winsock et possiblité de passer par un proxy !!!!

Soyez le premier à donner votre avis sur cette source.

Vue 5 475 fois - Téléchargée 674 fois

Description

Slt

Bon tout d'abord je tiens a prévenir que je suis très jeune (14) donc que le code ne seras pas eblouissant mais sa peut toujours servir.
Il permet de se connecter a un ftp grace a winsock (d'accord il y en a beaucoups) avec un proxy ou sans. Les seules fonction qu'il a sont connection-deconnection(Il de vrait être mis a jour dès que j'aurais des réponses a certaines questions.

Si vou pouviez d'ailleur m'aidez a faire en sorte que la commande list marche et que l'on puisse up dans le serveur je vous serait reconnaissant.

Enfin bon a part sa le code n'est pas long et je pense assez bien expliqué a vous de voir maintenant.

Je mets le code mets vous ne trouverez surement pas quels sont les objets utilisé sans télécharger le ZIP.

Source / Exemple :


Private Sub connect_Click()

   If Option1.Value = True Then
   If Text1.Text = "" Then
   MsgBox "Veuillez rentrer une adresse proxy ex: 127.125.145.2"
    Else
   If Text2.Text = "" Then
   MsgBox "Veuillez rentrer un nom de prot ex:80"
    Else
   Winsock1.Close '// On ferme la connection (évite ainsi des problemes)
   Winsock1.connect Text1.Text, Text2.Text '//On se connecte au proxy
End If
End If
End If
If Option2.Value = True Then
   Winsock1.Close '// On ferme la connection (évite ainsi des problemes)
   Winsock1.connect serveur.Text, port.Text '//On se connecte au proxy
End If
End Sub

Private Sub deconnect_Click()

Winsock1.Close
Winsock2.Close
connect.Enabled = True
deconnect.Enabled = False
End Sub

Private Sub Form_Load()

End Sub

Private Sub Option1_Click()

Text1.Enabled = True
Text2.Enabled = True
End Sub

Private Sub Option2_Click()

Text1.Enabled = False
Text2.Enabled = False
End Sub

Private Sub Winsock1_Connect() '// Quand on est connecté au proxy
If Option1.Value = True Then
    journal.Text = " Connection au proxy accepter" '// on certifie que la connection au proxy est faite
    Winsock1.SendData "CONNECT " & serveur.Text & ":" & port.Text & " HTTP/1.0" & vbCrLf & vbCrLf '// On envoie au proxy la commande pour qu'il se connecte au FTP
End If
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) '// quand la commande senddata a envoyer notre demande et qu'elle est arrivé
    Dim repftp As String
    Dim Codeftp As String
    Dim Temp
    
    Winsock1.GetData repftp '// Récuperation de la réponse du serveur.
    journal.Text = journal.Text & repftp '//On la mets dans le journal
    
    ftpCode = 0
    
    If Mid(repftp, 4, 1) <> "-" Then '// Si le quatrième caratère de la réponse n'est pas un "-" on récupère le code.
        Codeftp = Left(repftp, 4)
    End If

    
    Select Case Codeftp '// On donne les réponse en foànction de se que le serveur nous demande
        
        Case "220 ": '// Si il nous demande l'utilisateur
            Winsock1.SendData "USER " & login.Text & vbCrLf '// On lui donne l'utilisateur
            journal.Text = journal.Text & "USER " & login.Text & vbCrLf '// on mets dans le journal
        
        
        Case "331 ": '// Si il nous demande le mot de passe
            Winsock1.SendData "PASS " & pass.Text & vbCrLf '// On lui donne le PASS
            journal.Text = journal.Text & "PASS " & pass.Text & vbCrLf '// On mets dans le journal
      
        
        Case "230 ": '// Si le mot de passe et le nom d'utilisateur sont acceptée
            deconnect.Enabled = True
            connect.Enabled = False
            
            Winsock1.SendData "PASV" & vbCrLf '// On envois la commande PASV pour s'avoir sur quel port on se connecte
            journal.Text = journal.Text & "PASV" & vbCrLf '// On mets dans le journal
                
        
        Case "227 ": '// Si commande PASV acceptée
            '// On récupère le portsur lequel on va connecter le socket de données
            Temp = Split(repftp, ")")
            Temp = Split(Temp(0), "(")
            Temp = Split(Temp(1), ",")
            FtpDataRemotePort = CLng(Temp(4)) * 256 + CLng(Temp(5))
            '// Récuperation du port terminé, connection au socket de données
            Winsock2.connect serveur.Text, FtpDataRemotePort
            
            'If ftpdata.State <> 0 Then
            '    ' et on envois la commande LIST
            '    ftpdialog.SendData "LIST" & vbCrLf
            '    ftpinfo.Text = ftpinfo.Text & "LIST" & vbCrLf
            'Dim StrString As String
            'ftpdialog.GetData StrString, vbString, bytesTotal
            'List1.AddItem (StrString)
            ' End If

        
        Case "221 ": '// si le serveur a fermé la connection
            deconnect.Enabled = False
            Winsock1.Close
            'If Winsock2.State <> 0 Then
            '    Winsock2.Close
            'End If
            connect.Enabled = True
    End Select
    
End Sub

Conclusion :


Biens maintenant a vous de me notez. N'hésitez pas a me réprimendez tant que se ne sont pas des mots grossiers. Et si vous pouviez m'aidez. Merci.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_hackoo
Messages postés
94
Date d'inscription
mercredi 3 avril 2002
Statut
Membre
Dernière intervention
29 juillet 2013
-
Cette Source m'intéresse beaucoup.Voila j'explique un peu pourquoi:
J'ai utilisé le programme ftp de DOS de Windows pour envoyer un fichier chaque jour avec un Vbscript. Nous venons d'ajouter un serveur SQUID proxy dans notre réseau avec un Login et un Mot de passe utilisant le port 3128.
Ma question est la suivante: comment faire pour modifier cette source pour résoudre ce probléme de Proxy avec le Login et le mot de passe. autrement dit quelle est la syntaxe exacte pour aboutir a mon objectif?
Merci d'avance!
cs_Belt
Messages postés
47
Date d'inscription
jeudi 13 juin 2002
Statut
Membre
Dernière intervention
3 juillet 2006
-
juste un problème c'est que si tu es derrière un proxy ton winsock2.connect ip, port ne fonctionnera pas !! il faut passe par le mode actif avec la commande PORT ...
Renfield
Messages postés
17283
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
56 -
pour mon usage perso, au boulot, j'ai fait quelques lignes pour du FTP

ca m'a permis d'apprendre des trucs....

si tu veux de l'aide sur les connexion de données.... tu peux me joindre sur MSN : thomas_reynald@msn.com
RMOINAS
Messages postés
98
Date d'inscription
mardi 3 février 2004
Statut
Membre
Dernière intervention
16 septembre 2006
-
dsl mais je ne sais pas. Je ne pense pas que récupérer le mails soit pareil que se connectée au serveur(a moins que tu me donne l'adresse du serveur mais je ne pense pas que tu l'ai).

Je vais chercher et je te dirais comment faire si je trouve OK??
Philippe734
Messages postés
309
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
15 juin 2015
-
c vrai qu'il y a déjà pas mal de tut pour winsock mais ta contribution est importante qd meme. saurais tu comment se connecter aux serveurs d'hotmail avec winsock (pour travailler sur les mails) ? car hotmail est en http. je cherche avec winsock mais je trouve pas, je voudrais lire les mails, les récupérer (hotmail).

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.