CIDRのIPv4総アドレス数・利用可能ホスト数計算
このCIDR利用可能ホスト数計算ツールは、IPv4アドレスとプレフィックスから、正確なネットワーク境界、ブロードキャストアドレス、総アドレス数、利用可能ホスト数を求めます。192.168.1.0/24のような一般的な表記に対応し、ブロック内のホストアドレスを入力した場合もネットワークアドレスへ正規化します。ポイントツーポイント用の/31とホストルート用の/32では、常に2を差し引くことなく正しい数を返します。計算はローカルかつ決定的で、簡単な設計にも自動検証にも利用できます。
無料で実行
総アドレス数と利用可能ホスト数を正しく読み取る
IPv4プレフィックスは、32ビットのうちネットワークを識別するビット数を示します。残りがブロック内のアドレスを表すため、総数は2の残りビット数乗です。/24では8ビットが残り、256アドレスになります。通常の/0から/30では、先頭がネットワークアドレス、末尾がブロードキャストアドレスで、一般にはホストへ割り当てません。そのため/24の利用可能ホスト数は254です。本ツールは、割り当てブロックの規模を示す総数と、通常の収容力を示す利用可能数を別々に返します。正規化したネットワーク境界とブロードキャスト境界も表示するため、入力アドレスの所属を確認できます。予約数から差し引きも明確になります。完全なIPv4 /0が表す4,294,967,296も正確な整数として扱うので、暗記したサブネット表に頼らず、台帳、設計書、検証規則に利用できます。
/31と/32の特別な規則を理解する
2アドレスを差し引く一般則には重要な例外が2つあります。/31にはちょうど2アドレスがあります。ポイントツーポイント回線では独立したネットワーク宛先とブロードキャスト宛先が不要なため、広く使われる/31の方式では両方を2つの終端に割り当てられます。したがって、総数2、利用可能数2、予約数0を返します。/32は1アドレスだけを含み、複数ホストの通常のサブネットではなく単一ホストルートを表します。その1アドレスが利用可能なので、総数と利用可能数は1、予約数は0です。機械的に2を引くと0や負数になり、ルーティング設計や自動処理を誤らせます。出力形式を統一するためネットワークとブロードキャストの項目は残り、/32では同一、/31では2つの終端になります。/31を導入する前には、機器の対応状況と組織の方針もご確認ください。
正規化した境界をネットワーク設計に使う
ネットワーク境界そのものだけでなく、プレフィックス付きの任意のIPv4アドレスを入力できます。192.168.1.37/24を送ると192.168.1.0/24へ正規化し、ブロードキャストとして192.168.1.255を返します。ファイアウォールオブジェクト、ホスト台帳、クラウド設計、他システム生成の設定を確認するとき、誤解を招くホストアドレスではなく実際のブロックを把握できます。構築前に入力を検証し、正規化CIDRと予定した割り当てを比較し、容量確認にはusable_hostsをご使用ください。数学上利用可能でも、クラウド事業者、機器、社内方針により予約される場合があり、その固有予約は本計算に含みません。DNS照会や稼働中ネットワークの調査は行わず、10進IPv4 CIDR表記を解析して決定的な演算だけを実行します。そのため、パイプライン、インフラレビュー、IPAM取り込み、学習課題でも再現可能な結果を得られます。
活用例
サブネット容量を決める
IPv4プレフィックスを割り当てる前に、利用可能なホストアドレスが十分かをご確認いただけます。
ネットワーク設定を検証する
ホストアドレスを正規化し、得られたネットワーク境界とブロードキャスト境界を設定と比較できます。
ポイントツーポイント回線を設計する
大きなサブネットを浪費せず、/31の両端を正しく数えてルーター間回線を計画できます。
よくある質問
料金はいくらですか?
APIは1リクエストあたり$0.002で、ブラウザー上の計算ツールは無料でご利用いただけます。
通常はなぜ2アドレスを差し引くのですか?
/0から/30では先頭がネットワーク、末尾がブロードキャストを示し、その間のアドレスが利用可能だからです。
/31では何ホストを利用できますか?
/31では、独立したネットワークやブロードキャストの予約なしで、ポイントツーポイント回線の両端に2アドレスを利用できます。
/32では何ホストを利用できますか?
/32は単一のホストアドレスを表すため、総アドレス数と利用可能ホスト数はいずれも1です。
ネットワークアドレスではなくホストアドレスを入力できますか?
はい。指定されたプレフィックスに対応する実際のネットワーク境界へ正規化します。
クラウド事業者の予約分も含まれますか?
いいえ。標準的なIPv4 CIDR規則だけを適用するため、事業者や社内方針による追加予約は別に差し引いてください。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/dev/cidr-host-count \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"cidr":"192.168.1.0/24"}'const res = await fetch("https://api.kit.forhosting.com/dev/cidr-host-count", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"cidr": "192.168.1.0/24"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/cidr-host-count",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"cidr": "192.168.1.0/24"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/cidr-host-count", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"cidr":"192.168.1.0/24"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"cidr":"192.168.1.0/24"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/cidr-host-count", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"cidr": "192.168.1.0/24"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.cidr_host_count",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |