Micro serveur DNS faisant une redirection sur une adresse IP (serveur web local ou distant).
Utilisation: permet de rediriger un utilisateur sur une page d'accueil lors de Lan party ou Portail captif (Wifi non sécurisé), afin de lui apporter une meilleur visibilité des services disponibles sur le réseau.
Source / Exemple :
Private Sub Socket_DataArrival(ByVal bytesTotal As Long) ' *Valider* On Error Resume Next Dim qdata() As Byte Dim qdatalen As Integer Dim z As Integer Socket.GetData qdata qdatalen = bytesTotal If qdatalen > 1 Then Rem QUERY Dim qtype As Integer Dim qini As Integer Dim qlon As Integer Dim qdomaine As String qtype = Int((Int(qdata(2)) / 6) & 15) If qtype = 0 Then qini = 12 qlon = Int(qdata(qini)) While (qlon <> 0) For z = qini + 1 To qini + qlon qdomaine = qdomaine & Chr$(qdata(z)) Next qdomaine = qdomaine & "." qini = qini + qlon + 1 qlon = Int(qdata(qini)) Wend End If ' *** antispam*** ' If LastQuery.usrIP <> Socket.RemoteHostIP _ ' Or LastQuery.usrqdomaine <> qdomaine Then With LastQuery .usrIP = Socket.RemoteHostIP .usrqdomaine = qdomaine End With Addlog (" Query for " & qdomaine) Form1.Icon = LoadResPicture(104, vbResIcon) Call SysTray.ChangerIcone(Form1) Rem ANSWER Dim rpaquet() As Byte ReDim rpaquet(qdatalen + 16) If qdomaine <> "" Then For z = 0 To qdatalen - 1 rpaquet(z) = qdata(z) Next ' Create packet forge rpaquet(2) = 129 rpaquet(3) = 128 '... rpaquet(6) = qdata(4) rpaquet(7) = qdata(5) rpaquet(8) = 0 rpaquet(9) = 0 rpaquet(10) = 0 rpaquet(11) = 0 '... rpaquet(qdatalen) = 192 rpaquet(qdatalen + 1) = 12 rpaquet(qdatalen + 3) = 1 rpaquet(qdatalen + 5) = 1 rpaquet(qdatalen + 9) = 60 rpaquet(qdatalen + 11) = 4 'IP Redirection rpaquet(qdatalen + 12) = Split(toIP, ".")(0) rpaquet(qdatalen + 13) = Split(toIP, ".")(1) rpaquet(qdatalen + 14) = Split(toIP, ".")(2) rpaquet(qdatalen + 15) = Split(toIP, ".")(3) End If Socket.RemoteHost = Socket.RemoteHostIP Socket.SendData rpaquet Addlog (" Redirecting to " & toIP) Form1.Icon = LoadResPicture(103, vbResIcon) Call SysTray.ChangerIcone(Form1) ' End If End If End Sub
Conclusion :
Mise à jour v1.2 : Amélioration de la résolution des noms de domaines, dans un fichier de base de données. Attention à ne pas régler les paramétres de DNS de l'ordinateur hôte sur son adresse IP local afin de ne pas créer une boucle infini lors de la résolution d'un nouveau domaine.
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.