Test Foro de elhacker.net SMF 2.1

Programación => Programación General => .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 (vbnet) [Seleccionar]


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.
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 (vbnet) [Seleccionar]
'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.