Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
IP-Network validation scripts
// Der Parameter muss das Netz mit "/" als Trennung zur Subnetmask haben, Subnetmask in Binaer angeben
// String des Net Parameter ohne Leerzeichen uebergeben!!!
function ipnetworkvalid (net) {
// Trennen von Netz-IP und Subnetmask
net = net.split("/");
// Netzwerk-IP
netip = net[0];
// Subnetmask
mask = net[1];
// Segmente aufteilen
seg = netip.split("\.");
// Hostanteil
hostanteil = 32-mask;
// Hostanteil im letzten Segment
hostanteilLetztesSegment = hostanteil%8;
// Hosts im letzten Segment
hostsLetztesSegment = Math.pow(2, hostanteilLetztesSegment);
// Auswahl Segment
auswahlSeg = parseInt(mask/8);
if( seg[auswahlSeg]%hostsLetztesSegment == 0 )
{
// Alle Segmente hinter der Mask muessen Null sein
allNull = true;
for (var i=3; i > auswahlSeg; i--) {
if( seg[i] != 0 )
{
allNull = false;
}
}
if( allNull == true )
{
alert("Is valid network");
}
else
{
alert("No valid network");
}
}
else
{
alert("No valid network");
}
}
<?php
// Netz mit Maske
if(isset($argv[1]))
{
$net = $argv[1];
}
else
{
$net = "192.168.0.0/17";
}
// Trennen von Netz-IP und Subnetmask
$net = split("/", $net);
// Netzwerk-IP
$netip = $net[0];
// Subnetmask
$mask = $net[1];
// Segmente aufteilen
$seg = split("\.", $netip);
// Hostanteil
$hostanteil = 32-$mask;
// Hostanteil im letzten Segment
$hostanteilLetztesSegment = $hostanteil%8;
// Hosts im letzten Segment
$hostsLetztesSegment = pow(2, $hostanteilLetztesSegment);
// Auswahl Segment
$auswahlSeg = intval($mask/8);
if( $seg[$auswahlSeg]%$hostsLetztesSegment == 0 )
{
// Alle Segmente hinter der Mask muessen Null sein
$allNull = true;
for ($i=3; $i > $auswahlSeg; $i--) {
if( $seg[$i] != 0 )
{
$allNull = false;
}
}
if( $allNull == true )
{
echo "Is valid network";
}
else
{
echo "No valid network";
}
}
else
{
echo "No valid network";
}
echo "\n";
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.