compare two ip with C#

后端 未结 6 1354
夕颜
夕颜 2021-01-08 01:31

How I can compare two IP address?

string ip1 = \"123.123.123.123\";
string ip2 = \"124.124.124.124\";

I need some like this:



        
6条回答
  •  谎友^
    谎友^ (楼主)
    2021-01-08 01:44

    The type IPAddress in the BCL supports equality and can be used for this purpose.

    public static bool IsSameIPAddress(string ip1, string ip2) {
      IPAddress leftIP = IPAddress.Parse(ip1);
      IPAddress rightIP = IPAddress.Parse(ip2);
      return leftIP.Equals(rightIP);
    }
    

    Several people have wondered why a straight string comparison is not sufficient. The reason why is that an IP address can be legally represented in both base 10 and hexidecimal notation. So the same IP address can have more than 1 string representation.

    For example

    var left = "0x5.0x5.0x5.0x5";
    var right = "5.5.5.5";
    IsSameIPAddress(left,right); // true
    left == right; // false
    

提交回复
热议问题