+
{t("tools.networking.ipv4subnetting.title")}
+
+
+
+
+
+ {setIPPart1(e.currentTarget.value); if((e.currentTarget.value.length >= 3 && e.currentTarget.value.length > ipPart1.length) || e.currentTarget.value[e.currentTarget.value.length - 1] === ".") ipInput2.current?.focus()}} value={ipPart1} />
+ .
+ {setIPPart2(e.currentTarget.value); if((e.currentTarget.value.length >= 3 && e.currentTarget.value.length > ipPart2.length) || e.currentTarget.value[e.currentTarget.value.length - 1] === ".") ipInput3.current?.focus()}} value={ipPart2} />
+ .
+ {setIPPart3(e.currentTarget.value); if((e.currentTarget.value.length >= 3 && e.currentTarget.value.length > ipPart3.length) || e.currentTarget.value[e.currentTarget.value.length - 1] === ".") ipInput4.current?.focus()}} value={ipPart3} />
+ .
+ {setIPPart4(e.currentTarget.value); if((e.currentTarget.value.length >= 3 && e.currentTarget.value.length > ipPart4.length) || e.currentTarget.value[e.currentTarget.value.length - 1] === "/" || e.currentTarget.value[e.currentTarget.value.length - 1] === ".") subnetInput.current?.focus()}} value={ipPart4} />
+ /
+ {setSubnet(e.currentTarget.value);}} value={subnet} />
+
+
+
{t("tools.networking.common.subnetMask")}
+
{subnetMask ? intToIPv4String(subnetMask) : "???"}
+
+
{t("tools.networking.common.firstAddr")}
+
{firstAddr ? intToIPv4String(firstAddr) : "???"}
+
+
{t("tools.networking.common.lastAddr")}
+
{lastAddr ? intToIPv4String(lastAddr) : "???"}
+
+
{t("tools.networking.common.ipv4addr")} ({t("tools.networking.common.binary")})
+
+ {ipBinary ? ipBinary.toString(2).padStart(32, "0").split("").map((bit, index) => {
+ return = (subnetNumber||32) ? "red" : undefined}} key={"bit"+index}>{bit}
+ }) : "???"}
+
+
+
{t("tools.networking.common.subnetMask")} ({t("tools.networking.common.binary")})
+
+ {subnetBinary ? subnetBinary.padStart(32, "0").split("").map((bit, index) => {
+ return {bit}
+ }) : "???"}
+
+
+
+
+
+