回答編集履歴

2

補足を追加

2020/11/02 09:03

投稿

take88
take88

スコア1379

test CHANGED
@@ -70,7 +70,7 @@
70
70
 
71
71
  `255.255.255.255` -> `11111111 11111111 11111111 11111111` ... (B)
72
72
 
73
- (A) AND (B) = `11000000 10101000 01111011 11111101` = `192.168.123.253`
73
+ (A) AND (B) = `11000000 10101000 01111011 11111101` = `192.168.123.253` ※(A)と等しい
74
74
 
75
75
 
76
76
 

1

擬似コードを追加して、解説部分の文章を整理。

2020/11/02 09:03

投稿

take88
take88

スコア1379

test CHANGED
@@ -1,8 +1,8 @@
1
- `/32` は IPの範囲を表していていますがアドレスの個数が1個のIP範囲」という意味合いになるかと思います。
1
+ `/32` は IPの範囲を表していていますが「個数が1個のIPアドレスの範囲」という意味合いになるかと思います。
2
2
 
3
3
 
4
4
 
5
- ルーターなどのソフトウェアでは、あるIPが その範囲内かどうかを計算求めるのですが、そういった際に使用される表現です。
5
+ ルーターなどのソフトウェアでは、あるIPが その範囲内かどうかをプログラム判定しますが、そういった際に使用される表現です。
6
6
 
7
7
 
8
8
 
@@ -10,17 +10,43 @@
10
10
 
11
11
 
12
12
 
13
- たとえば `192.168.123.253` というアドレスが、`192.168.123.0/24` の範囲内かどうかは次のような計算で求めます。
13
+ えば IPアドレス `192.168.123.253` が、`192.168.123.0/24` の範囲内かどうかは次のよう求めます。
14
+
15
+
16
+
17
+ 擬似コード
18
+
19
+
20
+
21
+ ```
22
+
23
+ ip_address = `192.168.123.253`
24
+
25
+ ip_range = `192.168.123.0`
26
+
27
+ subnet_mask = `255.255.255.0`
28
+
29
+
30
+
31
+ if ( ip_address AND subnet_mask ) == ip_range
32
+
33
+ => この真偽値は TRUE (=範囲内)
34
+
35
+ ```
14
36
 
15
37
 
16
38
 
17
39
  - `/24` は IPアドレス表現だと `255.255.255.0` になります。
18
40
 
19
- - `192.168.123.253` と `255.255.255.0` の論理積を求めると `192.168.123.0` になります。
41
+ - IPアドレス `192.168.123.253` と `255.255.255.0` の論理積を求めると `192.168.123.0` になります。
42
+
43
+ - `192.168.123.0/24` のアドレス部分と等しいため範囲内だと判定されます。
20
44
 
21
45
 
22
46
 
47
+
48
+
23
- 同じ計算を `192.168.123.0` ~ `.254` の IP 全てに対して行うと、すべて `192.168.123.0` という結果になり、これらすべてが `192.168.123.0/24` の範囲であると判されます。
49
+ 同じ計算を `192.168.123.0` ~ `.255` の IP 全てに対して行っても、すべて `192.168.123.0` という結果になり、これらすべてが `192.168.123.0/24` の範囲であると判されます。
24
50
 
25
51
 
26
52
 
@@ -30,15 +56,13 @@
30
56
 
31
57
 
32
58
 
33
- - `/32` は `255.255.255.255` にな
59
+ - `/32` は `255.255.255.255` になります
34
60
 
35
- - `192.168.123.253` と `255.255.255.255` の論理積は 計算前の IPと同じ `192.168.123.253` になります。
61
+ - `192.168.123.253` と `255.255.255.255` の論理積は `192.168.123.253` になります。
36
62
 
37
63
 
38
64
 
39
- これは、`/32` は すべてのビットが `1` なので、論理積と求めると、必ず 計算前の IPアドレスと同じ値になるためです。
65
+ `/32` の場合は、IPアドレスが何であれ必ず同じ値になります。これは、`/32` は すべてのビットが `1` なので、論理積と求めると、必ず IPアドレスと同じ値になるためです。
40
-
41
-
42
66
 
43
67
 
44
68
 
@@ -46,12 +70,8 @@
46
70
 
47
71
  `255.255.255.255` -> `11111111 11111111 11111111 11111111` ... (B)
48
72
 
49
-
50
-
51
-
52
-
53
73
  (A) AND (B) = `11000000 10101000 01111011 11111101` = `192.168.123.253`
54
74
 
55
75
 
56
76
 
57
- このように、`192.168.123.253/32` IPアドレス範囲表現ありますが、完全に一致する1個のIPアドレスを意味しています。
77
+ 以上から、`192.168.123.253/32` の範囲を満たすIPアドレスは `192.168.123.253` であり、`/32` は、完全に一致する1個のIPアドレスを意味しています。