質問するログイン新規登録

回答編集履歴

2

補足を追加

2020/11/02 09:03

投稿

Umeeeh
Umeeeh

スコア1493

answer CHANGED
@@ -34,6 +34,6 @@
34
34
 
35
35
  `192.168.123.253` -> `11000000 10101000 01111011 11111101` ... (A)
36
36
  `255.255.255.255` -> `11111111 11111111 11111111 11111111` ... (B)
37
- (A) AND (B) = `11000000 10101000 01111011 11111101` = `192.168.123.253`
37
+ (A) AND (B) = `11000000 10101000 01111011 11111101` = `192.168.123.253` ※(A)と等しい
38
38
 
39
39
  以上から、`192.168.123.253/32` の範囲を満たすIPアドレスは `192.168.123.253` のみであり、`/32` は、完全に一致する1個のIPアドレスを意味しています。

1

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

2020/11/02 09:03

投稿

Umeeeh
Umeeeh

スコア1493

answer CHANGED
@@ -1,29 +1,39 @@
1
- `/32` は IPの範囲を表していていますがアドレスの個数が1個のIP範囲」という意味合いになるかと思います。
1
+ `/32` は IPの範囲を表していていますが「個数が1個のIPアドレスの範囲」という意味合いになるかと思います。
2
2
 
3
- ルーターなどのソフトウェアでは、あるIPが その範囲内かどうかを計算求めるのですが、そういった際に使用される表現です。
3
+ ルーターなどのソフトウェアでは、あるIPが その範囲内かどうかをプログラム判定しますが、そういった際に使用される表現です。
4
4
 
5
5
  **計算方法の例**
6
6
 
7
- たとえば `192.168.123.253` というアドレスが、`192.168.123.0/24` の範囲内かどうかは次のような計算で求めます。
7
+ えば IPアドレス `192.168.123.253` が、`192.168.123.0/24` の範囲内かどうかは次のよう求めます。
8
8
 
9
+ 擬似コード
10
+
11
+ ```
12
+ ip_address = `192.168.123.253`
13
+ ip_range = `192.168.123.0`
14
+ subnet_mask = `255.255.255.0`
15
+
16
+ if ( ip_address AND subnet_mask ) == ip_range
17
+ => この真偽値は TRUE (=範囲内)
18
+ ```
19
+
9
20
  - `/24` は IPアドレス表現だと `255.255.255.0` になります。
10
- - `192.168.123.253` と `255.255.255.0` の論理積を求めると `192.168.123.0` になります。
21
+ - IPアドレス `192.168.123.253` と `255.255.255.0` の論理積を求めると `192.168.123.0` になります。
22
+ - `192.168.123.0/24` のアドレス部分と等しいため範囲内だと判定されます。
11
23
 
12
- 同じ計算を `192.168.123.0` ~ `.254` の IP 全てに対して行うと、すべて `192.168.123.0` という結果になり、これらすべてが `192.168.123.0/24` の範囲であると判断されます。
13
24
 
25
+ 同じ計算を `192.168.123.0` ~ `.255` の IP 全てに対して行っても、すべて `192.168.123.0` という結果になり、これらすべてが `192.168.123.0/24` の範囲内であると判定されます。
14
26
 
27
+
15
28
  ** /32 の場合の例**
16
29
 
17
- - `/32` は `255.255.255.255` にな
30
+ - `/32` は `255.255.255.255` になります
18
- - `192.168.123.253` と `255.255.255.255` の論理積は 計算前の IPと同じ `192.168.123.253` になります。
31
+ - `192.168.123.253` と `255.255.255.255` の論理積は `192.168.123.253` になります。
19
32
 
20
- これは、`/32` は すべてのビットが `1` なので、論理積と求めると、必ず 計算前の IPアドレスと同じ値になるためです。
33
+ `/32` の場合は、IPアドレスが何であれ必ず同じ値になります。これは、`/32` は すべてのビットが `1` なので、論理積と求めると、必ず IPアドレスと同じ値になるためです。
21
34
 
22
-
23
35
  `192.168.123.253` -> `11000000 10101000 01111011 11111101` ... (A)
24
36
  `255.255.255.255` -> `11111111 11111111 11111111 11111111` ... (B)
25
-
26
-
27
37
  (A) AND (B) = `11000000 10101000 01111011 11111101` = `192.168.123.253`
28
38
 
29
- このように、`192.168.123.253/32` IPアドレス範囲表現ありますが、完全に一致する1個のIPアドレスを意味しています。
39
+ 以上から、`192.168.123.253/32` の範囲を満たすIPアドレスは `192.168.123.253` であり、`/32` は、完全に一致する1個のIPアドレスを意味しています。