Hola,
Tengo este codigo que me da todas las IPv4 pero necesito eliminar las duplicadas y me da error pues no puede convertir IPAddress to String...
Dim myClientMachineAddressList As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName())
Dim myClientMachineIP = myClientMachineAddressList.AddressList.Where(Function(a) a.AddressFamily = AddressFamily.InterNetwork).ToArray()
'El codigo para elminar duplicados es el siguiente pero no logro adaptarlo
Dim int32List As New List(Of String)
int32List = myClientMachineIP.Distinct(EqualityComparer(Of Integer).Default).ToArray
A lo mejor y puedo hacerlo directo con myClientMachineIP y me evito declarar otra variable.
Saludos y gracias desde ya.
Solo tengo una PC, y tengo internet (uso los datos del telefono enlazado a anclaje de red) . por lo tanto solo hay una IP en mi red.
*Deberia Funcionar ya..... :P
'obtenemos ip
Dim myClientMachineAddressList As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName())
Dim myClientMachineIP = myClientMachineAddressList.AddressList.Where(Function(a) a.AddressFamily = AddressFamily.InterNetwork).ToArray
'Eliminamos Duplicados y sobre-escribimos en la misma variable.
myClientMachineIP = myClientMachineIP.Distinct(EqualityComparer(Of IPAddress).Default).ToArray
'recorremos los duplicados 1 por 1 y los pamos a un textbox (como string) .
For Each ipadress In myClientMachineIP
TextBox2.Text = TextBox2.Text & vbNewLine & ipadress.ToString
Next
Bien si te preguntas que estabas haciendo mal. (Realmente no soy bueno explicando)
hay varias cosas que veo mal en tu code. Por ejemplo:
1) Como puede haber 2 IPs iguales en una misma red?? no deberian haber duplicados , en todo caso, no se si eso pueda pasar.
2) la funcion con la que obtienes las IPs es del tipo IPAddress, y tu intentas eliminar los duplicados señalando que es tipo Integer ademas de que la lista int32List las estas declarando como String en (New List(Of String)) , bueno ahi esta el error, ya deberia funcionar.