LukeSkywalker.IPNetwork.IPNetwork Class Reference

IP Network utility class. Use IPNetwork.Parse to create instances. More...

List of all members.

Public Member Functions

override string ToString ()
override bool Equals (object obj)
override int GetHashCode ()
int CompareTo (IPNetwork other)

Static Public Member Functions

static IPNetwork Parse (string ipaddress, string netmask)
 192.168.168.100 - 255.255.255.0
static IPNetwork Parse (string ipaddress, byte cidr)
 192.168.168.100/24
static IPNetwork Parse (IPAddress ipaddress, IPAddress netmask)
 192.168.168.100 255.255.255.0
static IPNetwork Parse (string network)
 192.168.0.1/24 192.168.0.1 255.255.255.0
static bool TryParse (string ipaddress, string netmask, out IPNetwork ipnetwork)
 192.168.168.100 - 255.255.255.0
static bool TryParse (string ipaddress, byte cidr, out IPNetwork ipnetwork)
 192.168.168.100/24
static bool TryParse (string network, out IPNetwork ipnetwork)
 192.168.0.1/24 192.168.0.1 255.255.255.0
static bool TryParse (IPAddress ipaddress, IPAddress netmask, out IPNetwork ipnetwork)
 192.168.0.1/24 192.168.0.1 255.255.255.0
static uint ToUint (IPAddress ipaddress)
 Convert an ipadress to decimal 0.0.0.0 -> 0 0.0.1.0 -> 256.
static bool TryToUint (IPAddress ipaddress, out uint?uintIpAddress)
 Convert an ipadress to decimal 0.0.0.0 -> 0 0.0.1.0 -> 256.
static uint ToUint (byte cidr)
 Convert a cidr to uint netmask.
static bool TryToUint (byte cidr, out uint?uintNetmask)
 Convert a cidr to uint netmask.
static byte ToCidr (IPAddress netmask)
 Convert netmask to CIDR 255.255.255.0 -> 24 255.255.0.0 -> 16 255.0.0.0 -> 8.
static bool TryToCidr (IPAddress netmask, out byte?cidr)
 Convert netmask to CIDR 255.255.255.0 -> 24 255.255.0.0 -> 16 255.0.0.0 -> 8.
static IPAddress ToNetmask (byte cidr)
 Convert CIDR to netmask 24 -> 255.255.255.0 16 -> 255.255.0.0 8 -> 255.0.0.0.
static bool TryToNetmask (byte cidr, out IPAddress netmask)
 Convert CIDR to netmask 24 -> 255.255.255.0 16 -> 255.255.0.0 8 -> 255.0.0.0.
static byte BitsSet (IPAddress netmask)
 Count bits set to 1 in netmask.
static bool ValidNetmask (IPAddress netmask)
 return true if netmask is a valid netmask 255.255.255.0, 255.0.0.0, 255.255.240.0, ...
static bool Contains (IPNetwork network, IPAddress ipaddress)
 return true if ipaddress is contained in network
static bool Contains (IPNetwork network, IPNetwork network2)
 return true is network2 is fully contained in network
static bool Overlap (IPNetwork network, IPNetwork network2)
 return true is network2 overlap network
static bool IsIANAReserved (IPAddress ipaddress)
 return true if ipaddress is contained in IANA_ABLK_RESERVED1, IANA_BBLK_RESERVED1, IANA_CBLK_RESERVED1
static bool IsIANAReserved (IPNetwork ipnetwork)
 return true if ipnetwork is contained in IANA_ABLK_RESERVED1, IANA_BBLK_RESERVED1, IANA_CBLK_RESERVED1
static IPNetworkCollection Subnet (IPNetwork network, byte cidr)
 Subnet a network into multiple nets of cidr mask Subnet 192.168.0.0/24 into cidr 25 gives 192.168.0.0/25, 192.168.0.128/25 Subnet 10.0.0.0/8 into cidr 9 gives 10.0.0.0/9, 10.128.0.0/9.
static bool TrySubnet (IPNetwork network, byte cidr, out IPNetworkCollection ipnetworkCollection)
 Subnet a network into multiple nets of cidr mask Subnet 192.168.0.0/24 into cidr 25 gives 192.168.0.0/25, 192.168.0.128/25 Subnet 10.0.0.0/8 into cidr 9 gives 10.0.0.0/9, 10.128.0.0/9.
static IPNetwork Supernet (IPNetwork network1, IPNetwork network2)
 Supernet two consecutive cidr equal subnet into a single one 192.168.0.0/24 + 192.168.1.0/24 = 192.168.0.0/23 10.1.0.0/16 + 10.0.0.0/16 = 10.0.0.0/15 192.168.0.0/24 + 192.168.0.0/25 = 192.168.0.0/24.
static bool TrySupernet (IPNetwork network1, IPNetwork network2, out IPNetwork supernet)
 Try to supernet two consecutive cidr equal subnet into a single one 192.168.0.0/24 + 192.168.1.0/24 = 192.168.0.0/23 10.1.0.0/16 + 10.0.0.0/16 = 10.0.0.0/15 192.168.0.0/24 + 192.168.0.0/25 = 192.168.0.0/24.
static IPNetwork[] Supernet (IPNetwork[] ipnetworks)
 Supernet a list of subnet 192.168.0.0/24 + 192.168.1.0/24 = 192.168.0.0/23 192.168.0.0/24 + 192.168.1.0/24 + 192.168.2.0/24 + 192.168.3.0/24 = 192.168.0.0/22.
static bool TrySupernet (IPNetwork[] ipnetworks, out IPNetwork[] supernet)
 Supernet a list of subnet 192.168.0.0/24 + 192.168.1.0/24 = 192.168.0.0/23 192.168.0.0/24 + 192.168.1.0/24 + 192.168.2.0/24 + 192.168.3.0/24 = 192.168.0.0/22.
static bool InternalSupernet (bool trySupernet, IPNetwork[] ipnetworks, out IPNetwork[] supernet)
static IPNetwork WideSubnet (string start, string end)
static bool TryWideSubnet (IPNetwork[] ipnetworks, out IPNetwork ipnetwork)
static IPNetwork WideSubnet (IPNetwork[] ipnetworks)
static string Print (IPNetwork ipnetwork)
 Print an ipnetwork in a clear representation string.
static bool TryGuessCidr (string ip, out byte cidr)
 Class Leading bits Default netmask A (CIDR /8) 00 255.0.0.0 A (CIDR /8) 01 255.0.0.0 B (CIDR /16) 10 255.255.0.0 C (CIDR /24) 11 255.255.255.0.
static bool TryParseCidr (string sidr, out byte?cidr)
 Try to parse cidr. Have to been >= 0 and <= 32.
static IPAddressCollection ListIPAddress (IPNetwork ipnetwork)

Properties

IPAddress Network [get]
 Network address.
IPAddress Netmask [get]
 Netmask.
IPAddress Broadcast [get]
 Broadcast address.
IPAddress FirstUsable [get]
 First usable IP adress in Network.
IPAddress LastUsable [get]
 Last usable IP adress in Network.
uint Usable [get]
 Number of usable IP adress in Network.
byte Cidr [get]
 The CIDR netmask notation.
static IPNetwork IANA_ABLK_RESERVED1 [get]
 10.0.0.0/8
static IPNetwork IANA_BBLK_RESERVED1 [get]
 172.12.0.0/12
static IPNetwork IANA_CBLK_RESERVED1 [get]
 192.168.0.0/16

Detailed Description

IP Network utility class. Use IPNetwork.Parse to create instances.


Member Function Documentation

static IPNetwork LukeSkywalker.IPNetwork.IPNetwork.Parse ( string  ipaddress,
string  netmask 
) [static]

192.168.168.100 - 255.255.255.0

Network : 192.168.168.0 Netmask : 255.255.255.0 Cidr : 24 Start : 192.168.168.1 End : 192.168.168.254 Broadcast : 192.168.168.255

Parameters:
ipaddress 
netmask 
Returns:
static IPNetwork LukeSkywalker.IPNetwork.IPNetwork.Parse ( string  ipaddress,
byte  cidr 
) [static]

192.168.168.100/24

Network : 192.168.168.0 Netmask : 255.255.255.0 Cidr : 24 Start : 192.168.168.1 End : 192.168.168.254 Broadcast : 192.168.168.255

Parameters:
ipaddress 
cidr 
Returns:
static IPNetwork LukeSkywalker.IPNetwork.IPNetwork.Parse ( IPAddress  ipaddress,
IPAddress  netmask 
) [static]

192.168.168.100 255.255.255.0

Network : 192.168.168.0 Netmask : 255.255.255.0 Cidr : 24 Start : 192.168.168.1 End : 192.168.168.254 Broadcast : 192.168.168.255

Parameters:
ipaddress 
netmask 
Returns:
static IPNetwork LukeSkywalker.IPNetwork.IPNetwork.Parse ( string  network  )  [static]

192.168.0.1/24 192.168.0.1 255.255.255.0

Network : 192.168.0.0 Netmask : 255.255.255.0 Cidr : 24 Start : 192.168.0.1 End : 192.168.0.254 Broadcast : 192.168.0.255

Parameters:
network 
Returns:
static bool LukeSkywalker.IPNetwork.IPNetwork.TryParse ( string  ipaddress,
string  netmask,
out IPNetwork  ipnetwork 
) [static]

192.168.168.100 - 255.255.255.0

Network : 192.168.168.0 Netmask : 255.255.255.0 Cidr : 24 Start : 192.168.168.1 End : 192.168.168.254 Broadcast : 192.168.168.255

Parameters:
ipaddress 
netmask 
Returns:
static bool LukeSkywalker.IPNetwork.IPNetwork.TryParse ( string  ipaddress,
byte  cidr,
out IPNetwork  ipnetwork 
) [static]

192.168.168.100/24

Network : 192.168.168.0 Netmask : 255.255.255.0 Cidr : 24 Start : 192.168.168.1 End : 192.168.168.254 Broadcast : 192.168.168.255

Parameters:
ipaddress 
cidr 
Returns:
static bool LukeSkywalker.IPNetwork.IPNetwork.TryParse ( string  network,
out IPNetwork  ipnetwork 
) [static]

192.168.0.1/24 192.168.0.1 255.255.255.0

Network : 192.168.0.0 Netmask : 255.255.255.0 Cidr : 24 Start : 192.168.0.1 End : 192.168.0.254 Broadcast : 192.168.0.255

Parameters:
network 
ipnetwork 
Returns:
static bool LukeSkywalker.IPNetwork.IPNetwork.TryParse ( IPAddress  ipaddress,
IPAddress  netmask,
out IPNetwork  ipnetwork 
) [static]

192.168.0.1/24 192.168.0.1 255.255.255.0

Network : 192.168.0.0 Netmask : 255.255.255.0 Cidr : 24 Start : 192.168.0.1 End : 192.168.0.254 Broadcast : 192.168.0.255

Parameters:
ipaddress 
netmask 
ipnetwork 
Returns:
static uint LukeSkywalker.IPNetwork.IPNetwork.ToUint ( IPAddress  ipaddress  )  [static]

Convert an ipadress to decimal 0.0.0.0 -> 0 0.0.1.0 -> 256.

Parameters:
ipaddress 
Returns:
static bool LukeSkywalker.IPNetwork.IPNetwork.TryToUint ( IPAddress  ipaddress,
out uint?  uintIpAddress 
) [static]

Convert an ipadress to decimal 0.0.0.0 -> 0 0.0.1.0 -> 256.

Parameters:
ipaddress 
Returns:
static uint LukeSkywalker.IPNetwork.IPNetwork.ToUint ( byte  cidr  )  [static]

Convert a cidr to uint netmask.

Parameters:
cidr 
Returns:
static bool LukeSkywalker.IPNetwork.IPNetwork.TryToUint ( byte  cidr,
out uint?  uintNetmask 
) [static]

Convert a cidr to uint netmask.

Parameters:
cidr 
Returns:
static byte LukeSkywalker.IPNetwork.IPNetwork.ToCidr ( IPAddress  netmask  )  [static]

Convert netmask to CIDR 255.255.255.0 -> 24 255.255.0.0 -> 16 255.0.0.0 -> 8.

Parameters:
netmask 
Returns:
static bool LukeSkywalker.IPNetwork.IPNetwork.TryToCidr ( IPAddress  netmask,
out byte?  cidr 
) [static]

Convert netmask to CIDR 255.255.255.0 -> 24 255.255.0.0 -> 16 255.0.0.0 -> 8.

Parameters:
netmask 
Returns:
static IPAddress LukeSkywalker.IPNetwork.IPNetwork.ToNetmask ( byte  cidr  )  [static]

Convert CIDR to netmask 24 -> 255.255.255.0 16 -> 255.255.0.0 8 -> 255.0.0.0.

http://snipplr.com/view/15557/cidr-class-for-ipv4/

Parameters:
cidr 
Returns:
static bool LukeSkywalker.IPNetwork.IPNetwork.TryToNetmask ( byte  cidr,
out IPAddress  netmask 
) [static]

Convert CIDR to netmask 24 -> 255.255.255.0 16 -> 255.255.0.0 8 -> 255.0.0.0.

http://snipplr.com/view/15557/cidr-class-for-ipv4/

Parameters:
cidr 
Returns:
static byte LukeSkywalker.IPNetwork.IPNetwork.BitsSet ( IPAddress  netmask  )  [static]

Count bits set to 1 in netmask.

Parameters:
netmask 
Returns:
static bool LukeSkywalker.IPNetwork.IPNetwork.ValidNetmask ( IPAddress  netmask  )  [static]

return true if netmask is a valid netmask 255.255.255.0, 255.0.0.0, 255.255.240.0, ...

http://www.actionsnip.com/snippets/tomo_atlacatl/calculate-if-a-netmask-is-valid--as2-

Parameters:
netmask 
Returns:
static bool LukeSkywalker.IPNetwork.IPNetwork.Contains ( IPNetwork  network,
IPAddress  ipaddress 
) [static]

return true if ipaddress is contained in network

Parameters:
network 
ipaddress 
Returns:
static bool LukeSkywalker.IPNetwork.IPNetwork.Contains ( IPNetwork  network,
IPNetwork  network2 
) [static]

return true is network2 is fully contained in network

Parameters:
network 
network2 
Returns:
static bool LukeSkywalker.IPNetwork.IPNetwork.Overlap ( IPNetwork  network,
IPNetwork  network2 
) [static]

return true is network2 overlap network

Parameters:
network 
network2 
Returns:
static bool LukeSkywalker.IPNetwork.IPNetwork.IsIANAReserved ( IPAddress  ipaddress  )  [static]

return true if ipaddress is contained in IANA_ABLK_RESERVED1, IANA_BBLK_RESERVED1, IANA_CBLK_RESERVED1

Parameters:
ipaddress 
Returns:
static bool LukeSkywalker.IPNetwork.IPNetwork.IsIANAReserved ( IPNetwork  ipnetwork  )  [static]

return true if ipnetwork is contained in IANA_ABLK_RESERVED1, IANA_BBLK_RESERVED1, IANA_CBLK_RESERVED1

Parameters:
ipnetwork 
Returns:
static IPNetworkCollection LukeSkywalker.IPNetwork.IPNetwork.Subnet ( IPNetwork  network,
byte  cidr 
) [static]

Subnet a network into multiple nets of cidr mask Subnet 192.168.0.0/24 into cidr 25 gives 192.168.0.0/25, 192.168.0.128/25 Subnet 10.0.0.0/8 into cidr 9 gives 10.0.0.0/9, 10.128.0.0/9.

Parameters:
ipnetwork 
cidr 
Returns:
static bool LukeSkywalker.IPNetwork.IPNetwork.TrySubnet ( IPNetwork  network,
byte  cidr,
out IPNetworkCollection  ipnetworkCollection 
) [static]

Subnet a network into multiple nets of cidr mask Subnet 192.168.0.0/24 into cidr 25 gives 192.168.0.0/25, 192.168.0.128/25 Subnet 10.0.0.0/8 into cidr 9 gives 10.0.0.0/9, 10.128.0.0/9.

Parameters:
ipnetwork 
cidr 
Returns:
static IPNetwork LukeSkywalker.IPNetwork.IPNetwork.Supernet ( IPNetwork  network1,
IPNetwork  network2 
) [static]

Supernet two consecutive cidr equal subnet into a single one 192.168.0.0/24 + 192.168.1.0/24 = 192.168.0.0/23 10.1.0.0/16 + 10.0.0.0/16 = 10.0.0.0/15 192.168.0.0/24 + 192.168.0.0/25 = 192.168.0.0/24.

Parameters:
network1 
network2 
Returns:
static bool LukeSkywalker.IPNetwork.IPNetwork.TrySupernet ( IPNetwork  network1,
IPNetwork  network2,
out IPNetwork  supernet 
) [static]

Try to supernet two consecutive cidr equal subnet into a single one 192.168.0.0/24 + 192.168.1.0/24 = 192.168.0.0/23 10.1.0.0/16 + 10.0.0.0/16 = 10.0.0.0/15 192.168.0.0/24 + 192.168.0.0/25 = 192.168.0.0/24.

Parameters:
network1 
network2 
Returns:
static IPNetwork [] LukeSkywalker.IPNetwork.IPNetwork.Supernet ( IPNetwork[]  ipnetworks  )  [static]

Supernet a list of subnet 192.168.0.0/24 + 192.168.1.0/24 = 192.168.0.0/23 192.168.0.0/24 + 192.168.1.0/24 + 192.168.2.0/24 + 192.168.3.0/24 = 192.168.0.0/22.

Parameters:
ipnetworks 
supernet 
Returns:
static bool LukeSkywalker.IPNetwork.IPNetwork.TrySupernet ( IPNetwork[]  ipnetworks,
out IPNetwork[]  supernet 
) [static]

Supernet a list of subnet 192.168.0.0/24 + 192.168.1.0/24 = 192.168.0.0/23 192.168.0.0/24 + 192.168.1.0/24 + 192.168.2.0/24 + 192.168.3.0/24 = 192.168.0.0/22.

Parameters:
ipnetworks 
supernet 
Returns:
static string LukeSkywalker.IPNetwork.IPNetwork.Print ( IPNetwork  ipnetwork  )  [static]

Print an ipnetwork in a clear representation string.

Parameters:
ipnetwork 
Returns:
static bool LukeSkywalker.IPNetwork.IPNetwork.TryGuessCidr ( string  ip,
out byte  cidr 
) [static]

Class Leading bits Default netmask A (CIDR /8) 00 255.0.0.0 A (CIDR /8) 01 255.0.0.0 B (CIDR /16) 10 255.255.0.0 C (CIDR /24) 11 255.255.255.0.

Parameters:
ip 
cidr 
Returns:
static bool LukeSkywalker.IPNetwork.IPNetwork.TryParseCidr ( string  sidr,
out byte?  cidr 
) [static]

Try to parse cidr. Have to been >= 0 and <= 32.

Parameters:
sidr 
cidr 
Returns:

Property Documentation

IPAddress LukeSkywalker.IPNetwork.IPNetwork.Network [get]

Network address.

IPAddress LukeSkywalker.IPNetwork.IPNetwork.Netmask [get]

Netmask.

IPAddress LukeSkywalker.IPNetwork.IPNetwork.Broadcast [get]

Broadcast address.

IPAddress LukeSkywalker.IPNetwork.IPNetwork.FirstUsable [get]

First usable IP adress in Network.

IPAddress LukeSkywalker.IPNetwork.IPNetwork.LastUsable [get]

Last usable IP adress in Network.

uint LukeSkywalker.IPNetwork.IPNetwork.Usable [get]

Number of usable IP adress in Network.

byte LukeSkywalker.IPNetwork.IPNetwork.Cidr [get]

The CIDR netmask notation.

IPNetwork LukeSkywalker.IPNetwork.IPNetwork.IANA_ABLK_RESERVED1 [static, get]

10.0.0.0/8

Returns:
IPNetwork LukeSkywalker.IPNetwork.IPNetwork.IANA_BBLK_RESERVED1 [static, get]

172.12.0.0/12

Returns:
IPNetwork LukeSkywalker.IPNetwork.IPNetwork.IANA_CBLK_RESERVED1 [static, get]

192.168.0.0/16

Returns:

Generated on Fri Sep 11 22:33:51 2009 for IPNetwork by  doxygen 1.6.1