public IPAddress(IPAddress old) { IP = new byte[4]; if (old == null) return; for (var i = 0; i < 4; i++) { IP[i] = old.IP[i]; } }
public static IPAddress operator ^(IPAddress a, IPAddress b) { var newIP = new IPAddress(a); for (var i = 0; i < 4; i++) newIP.IP[i] ^= b.IP[i]; return newIP; }
public bool Compare(IPAddress b) { for (var i = 0; i < 4; i++) { if (IP[i] != b.IP[i]) return false; } return true; }
public bool ValidateIPWithMask(IPAddress mask) { if (!mask.SubnetMaskValidation()) throw new Exception(ClientServiceLocator.GetService<ILanguage>().GetText("NonValidSubNetMask")); IPAddress negMask = ~mask; IPAddress pcAddress = this & negMask; if (pcAddress.IsZero()) //address of network return false; IPAddress broadTest = pcAddress ^ negMask; return !broadTest.IsZero(); }
public bool ComapreIPGWNet(IPAddress mask, IPAddress gw) { if (!mask.SubnetMaskValidation()) throw new Exception(ClientServiceLocator.GetService<ILanguage>().GetText("NonValidSubNetMask")); IPAddress gwNet = gw & mask; IPAddress ipNet = this & mask; return gwNet.Compare(ipNet); }