как сравнить ip адреса - PullRequest
       47

как сравнить ip адреса

1 голос
/ 19 июня 2009

Как сравнить IP-адрес, который хранится в массиве Ip [0] с удаленной конечной точкой ?? Пожалуйста, помогите мне.

Ответы [ 6 ]

11 голосов
/ 19 июня 2009

Как-то так должно работать ...

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!");
}
2 голосов
/ 19 июня 2009

Я предполагаю, что вы получили IP-адрес через

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

Если это так, вы можете просто сравнить с помощью

System.Net.IPEndPoint ip = (System.Net.IPEndPoint)ep;
ip.ToString();
if(Ip[0] == ip.toString());
1 голос
/ 19 июня 2009

Все вышеперечисленные варианты будут работать, но есть еще один вариант, не упомянутый здесь: Используйте метод IpAddress GetAddressBytes, чтобы получить адрес в байтах и ​​сравнить их. Это может быть полезно, если вам нужно выполнить другую обработку (например, определить, находится ли Ip в классе IP или что-то в этом роде) ..

0 голосов
/ 28 июля 2015

Вы можете использовать этот класс для расширения IpAddress:

http://www.codeproject.com/Articles/26550/Extending-the-IPAddress-object-to-allow-relative-c

0 голосов
/ 19 июня 2009

Просто сравните каждый член структуры.

0 голосов
/ 19 июня 2009

Ну, вы можете просто получить их: ToString (), а затем сравнить их. Или вы можете перебрать 4 числа, которые есть у IPv4 ip, и сравнить их.

...