come confrontare gli indirizzi IP
-
06-07-2019 - |
Domanda
Come confrontare l'indirizzo IP memorizzato in un array di Ip [0] con un endpoint remoto ?? Per favore, aiutami.
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.
Puoi usare questa classe per estendere IpAddress:
http: // www. codeproject.com/Articles/26550/Extending-the-IPAddress-object-to-allow-relative-c
È sufficiente confrontare ogni membro della struttura.