Récupérer le code source d'une page protégée par htaccess

Description

Voilà ça fait plusieurs jours que je cherche comment récupérer le code source d'une page protégée par htaccess (login et mot de passe), sans rien trouver.
Après plusieurs heures de recherche j'ai enfin trouvé, donc je publie cette source qui sera certainement très utile pour certains :)

Objet de connexion nécessaire : un winsock

Source / Exemple :


Dim Port As Integer
Dim Codes As String
Dim Login As String
Dim Password As String

Login = "votre_login"
Password = "votre_password"

Port = 80 'port HTTP
Codes = Encoder(Login & ":" & Password)
'La fonction Encoder est une fonction à développer (cryptage Base64).

'Si les codes d'accès sont déjà connus, vous pouvez simplement utiliser un convertisseur par exemple à cette adresse :
'http://yansanmo.no-ip.org/contenu/?id=214
'Rappel : le code doit être encrypté sous la forme de Login:Mot_de_passe

''''''''''PREMIER CAS : CONNEXION A UN ROUTEUR''''''''''

Dim Adresse_IP As String
Adresse_IP = "192.168.0.1" 'IP de votre routeur, à modifier selon le cas.

Winsock.Connect Adresse_IP, Port

Private Sub Winsock_Connect()
Text1.Text = ""
Winsock.SendData "GET / HTTP/1.1" & vbCrLf & "User-Agent: Navigateur" & vbCrLf & _ 'nom du navigateur client (facultatif :)  )
    "Host: " & Adresse_IP & vbCrLf & "Authorization: Basic " & Codes & vbCrLf & vbCrLf 'envoi des codes cryptés, plus double retour chariot

End Sub

Private Sub Winsock_DataArrival(ByVal bytesTotal As Long)
    Dim data As String
    Winsock.GetData data
    Text1.Text = Text1.Text + data 'data contient donc le code source.
End Sub

''''''''''SECOND CAS : CONNEXION A UN SERVEUR WEB''''''''''

Dim Serveur As String
Serveur = "www.machin.com" 'Adresse du site

Winsock.Connect Serveur, Port

Private Sub Winsock_Connect()

Dim Page As String
Page = "http://www.machin.com/page.html/" 'avec le slash final

Winsock.SendData "GET " & Page & " HTTP/1.0" & vbCrLf & _ 'demande de récupération d'information + définition du protocole ainsi que sa version
    "User-Agent: Navigateur" & vbCrLf & _ 'nom du navigateur client (facultatif :)  )
    "Accept: */*" & vbCrLf & "Accept: text/html" & vbCrLf & _ 'type de données acceptées
    "Authorization: Basic " & Codes & vbCrLf & vbCrLf 'envoi des codes cryptés, plus double retour chariot

End Sub

Private Sub Winsock_DataArrival(ByVal bytesTotal As Long)
    Dim data As String
    Winsock.GetData data
    Text1.Text = Text1.Text + data 'data contient donc le code source.
End Sub

''''''''''''''''''''

Conclusion :


Informations supplémentaires :
http://fr.wikipedia.org/wiki/HTTP_Authentification

Une page de conversion rapide Base64 :
http://yansanmo.no-ip.org/contenu/?id=214

Je n'ai peut être pas été très très clair mais c'est assez complet, donc si vous avez une question n'hésitez pas et je serai plus précis :)

PS : pour une raison inconnue, il peut arriver qu'il faille plusieurs essais pour que ça marche :P.
Cela dit, la théorie est là.

Codes Sources

A voir également

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.