Domanda

Come confrontare l'indirizzo IP memorizzato in un array di Ip [0] con un endpoint remoto ?? Per favore, aiutami.

È stato utile?

Soluzione

Qualcosa del genere dovrebbe funzionare ...

var ips = new[] { IPAddress.Parse( "127.0.0.1"),
                   IPAddress.Parse( "192.168.1.1"),
                   IPAddress.Parse( "10.0.0.1" ) };

var ep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 0);

if (ips[0].Equals(ep.Address))
{
    Console.WriteLine("Equal!");
}

Altri suggerimenti

Suppongo che tu abbia recuperato l'indirizzo IP tramite

System.Net.EndPoint ep = client.Client.RemoteEndPoint;
System.Net.IPEndPoint ip = (System.Net.IPEndPoint)ep;

In questo caso puoi solo confrontare tramite

System.Net.IPEndPoint ip = (System.Net.IPEndPoint)ep;
ip.ToString();
if(Ip[0] == ip.toString());

Tutte le varianti sopra funzioneranno ma c'è un'altra opzione non menzionata qui: Utilizzare il metodo IAddAddress GetAddressBytes per ottenere l'indirizzo come byte e confrontarli. Questo potrebbe essere utile se hai bisogno di effettuare altre elaborazioni (come capire se un IP è in una classe IP o qualcosa del genere) ..

Beh, potresti semplicemente ottenerli: ToString () e poi confrontarli. Oppure puoi scorrere i 4 numeri che ha un IP IPV4 e confrontarli.

È sufficiente confrontare ogni membro della struttura.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top