Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: TrashAmbishion en 10 Marzo 2020, 08:30 am



Título: Eliminando ip duplicadas !!
Publicado por: TrashAmbishion en 10 Marzo 2020, 08:30 am
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...

Código
  1.  
  2. Dim myClientMachineAddressList As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName())
  3. Dim myClientMachineIP = myClientMachineAddressList.AddressList.Where(Function(a) a.AddressFamily = AddressFamily.InterNetwork).ToArray()
  4.  
  5. 'El codigo para elminar duplicados es el siguiente pero no logro adaptarlo
  6.  
  7. Dim int32List As New List(Of String)
  8.  
  9. int32List = myClientMachineIP.Distinct(EqualityComparer(Of Integer).Default).ToArray
  10.  
  11.  

A lo mejor y puedo hacerlo directo con myClientMachineIP y me evito declarar otra variable.

Saludos y gracias desde ya.


Título: Re: Eliminando ip duplicadas !!
Publicado por: **Aincrad** en 10 Marzo 2020, 19:45 pm
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

Código
  1. 'obtenemos ip
  2.        Dim myClientMachineAddressList As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName())
  3.        Dim myClientMachineIP = myClientMachineAddressList.AddressList.Where(Function(a) a.AddressFamily = AddressFamily.InterNetwork).ToArray
  4.  
  5.        'Eliminamos Duplicados y sobre-escribimos en la misma variable.
  6.        myClientMachineIP = myClientMachineIP.Distinct(EqualityComparer(Of IPAddress).Default).ToArray
  7.  
  8.        'recorremos los duplicados 1 por 1 y los pamos a un textbox (como string) .
  9.        For Each ipadress In myClientMachineIP
  10.            TextBox2.Text = TextBox2.Text & vbNewLine & ipadress.ToString
  11.        Next
  12.  

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.