@@ -37,7 +37,35 @@ PM> nuget install IPNetwork2
3737
3838---
3939
40- ### Example 1 (IPv6)
40+ ### Example 1 (IPv4)
41+
42+ ``` C#
43+ IPNetwork2 ipnetwork = IPNetwork2 .Parse (" 192.168.168.100/24" );
44+
45+ Console .WriteLine (" Network : {0}" , ipnetwork .Network );
46+ Console .WriteLine (" Netmask : {0}" , ipnetwork .Netmask );
47+ Console .WriteLine (" Broadcast : {0}" , ipnetwork .Broadcast );
48+ Console .WriteLine (" FirstUsable : {0}" , ipnetwork .FirstUsable );
49+ Console .WriteLine (" LastUsable : {0}" , ipnetwork .LastUsable );
50+ Console .WriteLine (" Usable : {0}" , ipnetwork .Usable );
51+ Console .WriteLine (" Cidr : {0}" , ipnetwork .Cidr );
52+ ```
53+
54+ Output
55+
56+ ``` MD
57+ Network : 192.168.168.0
58+ Netmask : 255.255.255.0
59+ Broadcast : 192.168.168.255
60+ FirstUsable : 192.168.168.1
61+ LastUsable : 192.168.168.254
62+ Usable : 254
63+ Cidr : 24
64+ ```
65+
66+ ---
67+
68+ ### Example 2 (IPv6)
4169
4270``` C#
4371IPNetwork2 ipnetwork = IPNetwork2 .Parse (" 2001:0db8::/64" );
@@ -65,7 +93,7 @@ Cidr : 64
6593
6694---
6795
68- ### Example 2 (IPv6)
96+ ### Example 3 (IPv6)
6997
7098``` C#
7199IPNetwork2 ipnetwork = IPNetwork2 .Parse (" 2001:0db8::/64" );
@@ -107,7 +135,7 @@ Output
107135
108136---
109137
110- ### Example 3 (IPv6)
138+ ### Example 4 (IPv6)
111139
112140``` C#
113141IPNetwork2 wholeInternet = IPNetwork2 .Parse (" ::/0" );
@@ -139,7 +167,7 @@ c000::/2
139167
140168---
141169
142- ### Example 4 (IPv6)
170+ ### Example 5 (IPv6)
143171
144172``` C#
145173IPNetwork2 ipnetwork1 = IPNetwork2 .Parse (" 2001:0db8::/32" );
@@ -157,34 +185,6 @@ Output
157185
158186---
159187
160- ### Example 5
161-
162- ``` C#
163- IPNetwork2 ipnetwork = IPNetwork2 .Parse (" 192.168.168.100/24" );
164-
165- Console .WriteLine (" Network : {0}" , ipnetwork .Network );
166- Console .WriteLine (" Netmask : {0}" , ipnetwork .Netmask );
167- Console .WriteLine (" Broadcast : {0}" , ipnetwork .Broadcast );
168- Console .WriteLine (" FirstUsable : {0}" , ipnetwork .FirstUsable );
169- Console .WriteLine (" LastUsable : {0}" , ipnetwork .LastUsable );
170- Console .WriteLine (" Usable : {0}" , ipnetwork .Usable );
171- Console .WriteLine (" Cidr : {0}" , ipnetwork .Cidr );
172- ```
173-
174- Output
175-
176- ``` MD
177- Network : 192.168.168.0
178- Netmask : 255.255.255.0
179- Broadcast : 192.168.168.255
180- FirstUsable : 192.168.168.1
181- LastUsable : 192.168.168.254
182- Usable : 254
183- Cidr : 24
184- ```
185-
186- ---
187-
188188### Example 6
189189
190190``` C#
@@ -280,7 +280,7 @@ All :
280280
281281---
282282
283- ### Example 9
283+ ### Example 9 Supernet
284284
285285``` C#
286286IPNetwork2 ipnetwork1 = IPNetwork2 .Parse (" 192.168.0.0/24" );
@@ -298,6 +298,24 @@ Output
298298
299299---
300300
301+ ### Example 9 Operator +
302+
303+ ``` C#
304+ IPNetwork2 ipnetwork1 = IPNetwork2 .Parse (" 192.168.0.0/24" );
305+ IPNetwork2 ipnetwork2 = IPNetwork2 .Parse (" 192.168.1.0/24" );
306+ IPNetwork2 [] ipnetwork3 = ipnetwork1 + ipnetwork2 ;
307+
308+ Console .WriteLine (" {0} + {1} = {2}" , ipnetwork1 , ipnetwork2 , ipnetwork3 [0 ]);
309+ ```
310+
311+ Output
312+
313+ ``` JS
314+ 192.168 .0 .0 / 24 + 192.168 .1 .0 / 24 = 192.168 .0 .0 / 23
315+ ```
316+
317+ ---
318+
301319### Example 10 - ClassLess network parse
302320
303321If you don't specify the network cidr, IPNetwork will try to guess the CIDR for you. There are two strategies to guess ClassFull (default) and ClassLess.
@@ -438,6 +456,31 @@ Resut:
438456
439457---
440458
459+ #### operator -
460+
461+ ``` C#
462+ // Prepare
463+ var network1 = IPNetwork2 .Parse (" 0.0.0.0" , 0 );
464+ var network2 = IPNetwork2 .Parse (" 10.0.0.1" , 32 );
465+
466+ // Act
467+ var result = network1 - network2 ;
468+
469+ // Assert
470+ string ips = string .Join (" , " , result );
471+ Console .WriteLine (" {0}" , ips );
472+ ```
473+ Resut:
474+ ``` JS
475+ 0.0 .0 .0 / 5 , 8.0 .0 .0 / 7 , 10.0 .0 .0 / 32 , 10.0 .0 .2 / 31 , 10.0 .0 .4 / 30 , 10.0 .0 .8 / 29 ,
476+ 10.0 .0 .16 / 28 , 10.0 .0 .32 / 27 , 10.0 .0 .64 / 26 , 10.0 .0 .128 / 25 , 10.0 .1 .0 / 24 ,
477+ 10.0 .2 .0 / 23 , 10.0 .4 .0 / 22 , 10.0 .8 .0 / 21 , 10.0 .16 .0 / 20 , 10.0 .32 .0 / 19 , 10.0 .64 .0 / 18 ,
478+ 10.0 .128 .0 / 17 , 10.1 .0 .0 / 16 , 10.2 .0 .0 / 15 , 10.4 .0 .0 / 14 , 10.8 .0 .0 / 13 , 10.16 .0 .0 / 12 ,
479+ 10.32 .0 .0 / 11 , 10.64 .0 .0 / 10 , 10.128 .0 .0 / 9 , 11.0 .0 .0 / 8 , 12.0 .0 .0 / 6 , 16.0 .0 .0 / 4 ,
480+ 32.0 .0 .0 / 3 , 64.0 .0 .0 / 2 , 128.0 .0 .0 / 1
481+ ```
482+ ---
483+
441484## IPNetwork utility command line
442485
443486IPNetwork utility command line take care of complex network, ip, netmask,
0 commit comments