Vas muy bien encaminado de hecho solo faltaria algo bastante simple y es listar los host, me explico? hay una manera muy rustica pero funcional jaja que seria recorrer todos las ip 192.168.1.X el unico problema.. es el tiempo que tarda recomiendo que te busques como entretener sobre todo si tu ip termina en 255! (lo probe a diferencia del anterior este no lo probe deberia funcionar en teoria! pero la parte final no tengo manera de probarla jajja)
Funcional!
Dim hostname As String = Dns.GetHostName()
Dim ipHost As IPHostEntry = Dns.GetHostByName(hostname)
Dim ipOthers As IPAddress() = ipHost.AddressList
Dim IpRange() As String = Split(ipOthers(0).ToString, ".").ToArray
For i As Integer = 0 To ipOthers.Length - 1
If IpRange(0).Contains("192") Then
For j As Integer = 0 To 255
On Error Resume Next
MessageBox.Show("Pc: " + Dns.GetHostEntry("192.168.1." + j.ToString).HostName.ToString + "Ip: " + "192.168.1." + j.ToString)
Next
End If
If ipOthers(i).ToString.Contains("10") Then
For j As Integer = 0 To 255
On Error Resume Next
MessageBox.Show("Pc: " + Dns.GetHostEntry("10.0.0." + j.ToString).HostName.ToString + "Ip: " + "10.0.0." + j.ToString)
Next
End If
Next
funcional (teoricamente)
Dim hostname As String = Dns.GetHostName()
Dim ipHost As IPHostEntry = Dns.GetHostByName(hostname) 'obtenemos la ip del nombre de maquina desde donde se ejecuta
Dim ipOthers As IPAddress() = ipHost.AddressList 'se obtienen todas las ip privadas posibles de distintos programas por ejemplo el vmware
Dim IpRange() As String = Split(ipOthers(0).ToString, ".").ToArray 'dividimos las ip por sus numeros de sus .
For i As Integer = 0 To ipOthers.Length - 1 'recorremos todo el array de ips privadas
If IpRange(0).Contains("192") And CInt(IpRange(2)).ToString < 3 Then 'evaluamos todas las que empiezan en 192 y tienen en el 3er punto algo menor que 3 el vm ware crea con ip 48! y 71!
For j As Integer = 0 To 255
On Error Resume Next 'toda ip que no exista va a devolver un error asi que bueno lo dejamos que pase!
MessageBox.Show("Pc: " + Dns.GetHostEntry("192.168.1." + j.ToString).HostName.ToString + "Ip: " + "192.168.1." + j.ToString)
Next
Else
If IpRange(i).ToString.Contains("10") Then 'evaluamos todas las que empiezan en 10 no se como actua el vmware en estas ip supongo que es similar
For j As Integer = 0 To 255
On Error Resume Next
MessageBox.Show("Pc: " + Dns.GetHostEntry("10.0.0." + j.ToString).HostName.ToString + "Ip: " + "10.0.0." + j.ToString)
Next
Else
If IpRange(0) <> "10" Or IpRange(0) <> "192" Then 'este ultimo caso podria ser muuuuuy largo tal vez se deberia poner una comprobacion para seguir! cuando digo largo pensa en horas tal vez!
For j As Integer = 0 To 255
On Error Resume Next
MessageBox.Show("Pc: " + Dns.GetHostEntry(IpRange(0) + "." + IpRange(1) + "." + IpRange(2) + "." + j.ToString).HostName.ToString + "Ip: " + IpRange(0) + "." + IpRange(1) + "." + IpRange(2) + "." + j.ToString)
Next
End If
End If
End If
Next