Scan ip réseau local sous winxp

Contenu du snippet

Ce code permet de scanner les ip d'un réseau local. Il met le résultat dans deux fixhiers. Le premier fichier (valide.txt) est utilisé pour stocké les ip qui ne sont pas encore utilisées. Le second fichier stocke les ip dèja utilisées sur le réseau local. La partie de base de se programme a été trouvée dans le forum de se site, elle n'est pas de moi.

Source / Exemple :


Dim AdIP As String
Dim i As Integer
Dim nb As Integer
i% = 1
Open "c:\ip_valide.txt" For Output As #1
Open "c:\ip_non_valide.txt" For Output As #2
nb = 0
While i% <> 253

i% = i% + 1
AdIP$ = "192.168.1." & i%

'**************************
'Open "c:\windows\protect.org" For Output As #NumFich

  Dim Commande As String
    Dim Resultat As Long
    Dim Ad_a_tester As String
    Dim Handle As Long
    Dim Fichier As String
    Dim Ligne As String
    Dim EstOK As Boolean
    Dim t As Long
    
    EstOK = True
    
    Fichier = App.Path & "\" & AdIP$
    Ad_a_tester = AdIP
    Commande = "c:\windows\system32\cmd.exe /cping " & Ad_a_tester & " -n 1 >" & Fichier               'fait un ping d'une trame sur le réseau a l'@ ad_a_tester

    Resultat = Shell(Commande, vbMinimizedNoFocus)

    t = Timer
    Do
        If Timer - t > 5 Then Exit Do
        DoEvents
    Loop
    Do
        DoEvents
        Err = 0
        On Error Resume Next
        If FileLen(Fichier) <> 0 And Err = 0 Then Exit Do
    Loop
    EstOK = True
    Handle = FreeFile
    Open Fichier For Input As #Handle
        While Not EOF(Handle)
            Input #Handle, Ligne
            If InStr(Ligne, "d'attente de la demande") <> 0 Or InStr(Ligne, "Impossible de joindre") <> 0 Then
                EstOK = False
                GoTo sort_bouc
            End If
            If InStr(Ligne, "ponse de") <> 0 Or InStr(Ligne, "Statistiques Ping") <> 0 Then
                EstOK = True
                
            End If
        Wend
        
sort_bouc:
        
    Close #Handle
    Kill Fichier
    If EstOK = True Then
        ' mettre l'ip dans un fichier nommé no valide
        nb% = nb% + 1
        Print #2, AdIP$
    Else
        ' mettre l'ip dans un fichier nommé valide
        Print #1, AdIP$
    End If
    
On Error Resume Next
ProgressBar1.Value = Int((100 * i) / 253)
'****************************

Label1.Caption = "   ~~ Traitement en cours ...  ~~             Nombre de pc trouvés : " & nb%
Wend
Label1.Caption = "Vous pouvez maintenant éditer les fichiers c:\ip_valide et c:\ip_non_valide. Nb pc trouvés : " & nb%

Conclusion :


voila ++ et enjoy yourself :-)

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.