Accueil > > > CONNEXION FTP AVEC WINSOCK ET POSSIBLITÉ DE PASSER PAR UN PROXY !!!!
CONNEXION FTP AVEC WINSOCK ET POSSIBLITÉ DE PASSER PAR UN PROXY !!!!
Information sur la source
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
- 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
-
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.
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|