Soru toplu ping atma

incsoft

Altın Üye
Katılım
18 Ağustos 2009
Mesajlar
739
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
Arkadaşlar işyerimde bulunan 50 adet bilgisayarıma excel üzerinden ping atmak istiyorum. Bununla ilgili bazı yerlerden dosyalar buldum ancak çalışmıyor. Mesela 50 satırım var ve her birinde IP adresleri mevcut. 192.168.90.12 ...... şeklinde adresler var. Ping at dediğimde online - offline şeklinde yazan bir dosya varmı hazır? Ya da nasıl yapılabilir?
 

Greenblacksea53

Altın Üye
Katılım
5 Ocak 2019
Mesajlar
572
Excel Vers. ve Dili
Ofis 365 Tr
Altın Üyelik Bitiş Tarihi
05-01-2025
C++:
Sub PingIPAddresses()
    Dim ws As Worksheet
    Dim SonSatır As Long
    Dim i As Long
    
  
    Set ws = ThisWorkbook.Sheets("sayfa1")
    
 
    SonSatır = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    
  
    For i = 2 To SonSatır
        If Not IsEmpty(ws.Cells(i, 1).Value) Then
            ws.Cells(i, 2).Value = PingResult(ws.Cells(i, 1).Value)
        End If
    Next i
End Sub

Function PingResult(IPAdres As String) As String
    Dim oShell As Object
    Dim oExec As Object
    Dim oOutput As Object
    Dim sOutput As String
    
 
    Set oShell = CreateObject("WScript.Shell")
    
  
    Set oExec = oShell.Exec("ping -n 1 -w 1000 " & IPAdres)
    Set oOutput = oExec.StdOut
    sOutput = oOutput.ReadAll
    
  
    If InStr(sOutput, "TTL=") > 0 Then
        PingResult = "Online"
    Else
        PingResult = "Offline"
    End If
End Function
Sayfa1 A sütünü baz alındı
 

incsoft

Altın Üye
Katılım
18 Ağustos 2009
Mesajlar
739
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
C++:
Sub PingIPAddresses()
    Dim ws As Worksheet
    Dim SonSatır As Long
    Dim i As Long
   
 
    Set ws = ThisWorkbook.Sheets("sayfa1")
   

    SonSatır = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
   
 
    For i = 2 To SonSatır
        If Not IsEmpty(ws.Cells(i, 1).Value) Then
            ws.Cells(i, 2).Value = PingResult(ws.Cells(i, 1).Value)
        End If
    Next i
End Sub

Function PingResult(IPAdres As String) As String
    Dim oShell As Object
    Dim oExec As Object
    Dim oOutput As Object
    Dim sOutput As String
   

    Set oShell = CreateObject("WScript.Shell")
   
 
    Set oExec = oShell.Exec("ping -n 1 -w 1000 " & IPAdres)
    Set oOutput = oExec.StdOut
    sOutput = oOutput.ReadAll
   
 
    If InStr(sOutput, "TTL=") > 0 Then
        PingResult = "Online"
    Else
        PingResult = "Offline"
    End If
End Function
Sayfa1 A sütünü baz alındı

Öncelikle teşekkürler. Sonuç alamadım hocam
 

Ekli dosyalar

Greenblacksea53

Altın Üye
Katılım
5 Ocak 2019
Mesajlar
572
Excel Vers. ve Dili
Ofis 365 Tr
Altın Üyelik Bitiş Tarihi
05-01-2025
Öncelikle teşekkürler. Sonuç alamadım hocam
Kendine göre uyarladın mı Sayfa 1 bende hata vermedi İp adresler Sayfa 1 a1 sütününda başlıyor ping durumunu b sütününa yazıyor, ne hatası verdi mödüle ekleyip mödülü çalışırtırın245898
 

incsoft

Altın Üye
Katılım
18 Ağustos 2009
Mesajlar
739
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024

Ekli dosyalar

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
For i=1 to .....


.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
O zaman WMI kullanılan aşağıdaki kodu deneyin;

C#:
Sub Test()
'   Haluk - 08/08/2023

    Dim objPing As Object, objStatus As Object, xRng As Range, strResult As String
    
    For Each xRng In Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row)
        Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("Select * from Win32_PingStatus Where Address = '" & xRng & "'")
            
        For Each objStatus In objPing
            xRng.Offset(0, 1) = IIf(objStatus.StatusCode = 0, "Online", "Offline")
         Next
    Next
End Sub


.
 
Son düzenleme:
Üst