GamerSK

kalkulacka ip

Feb 4th, 2018
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.62 KB | None | 0 0
  1. <?php
  2.  
  3. $maska = ""; $binmaska= ""; $broadcast = ""; $binbroadcast = ""; $prvaip = ""; $binprvaip = ""; $poslednaip = ""; $binposlednaip = ""; $pocetip = "";
  4. $error = ""; $output = "";
  5.  
  6. if (isset($_POST['submit'])) {
  7.     if(empty($_POST['prva']) && empty($_POST['druha']) && empty($_POST['tretia']) && empty($_POST['stvrta']) && empty($_POST['prefix'])){
  8.         $error = "<strong>Vyplnte IP!</strong>";
  9.     }else{
  10.         $prva = strval(decbin($_POST['prva']));
  11.         $druha = strval(decbin($_POST['druha']));
  12.         $tretia = strval(decbin($_POST['tretia']));
  13.         $stvrta = strval(decbin($_POST['stvrta']));
  14.         $prefix = $_POST['prefix'];
  15.  
  16.         switch (strlen($prva)) {
  17.             case 1:
  18.                 $prva = "0000000".$prva;
  19.                 break;
  20.             case 2:
  21.                 $prva = "000000".$prva;
  22.                 break;
  23.             case 3:
  24.                 $prva = "00000".$prva;
  25.                 break;
  26.             case 4:
  27.                 $prva = "0000".$prva;
  28.                 break;
  29.             case 5:
  30.                 $prva = "000".$prva;
  31.                 break;
  32.             case 6:
  33.                 $prva = "00".$prva;
  34.                 break;
  35.             case 7:
  36.                 $prva = "0".$prva;
  37.                 break;
  38.         }
  39.  
  40.         switch (strlen($druha)) {
  41.             case 1:
  42.                 $druha = "0000000".$druha;
  43.                 break;
  44.             case 2:
  45.                 $druha = "000000".$druha;
  46.                 break;
  47.             case 3:
  48.                 $druha = "00000".$druha;
  49.                 break;
  50.             case 4:
  51.                 $druha = "0000".$druha;
  52.                 break;
  53.             case 5:
  54.                 $druha = "000".$druha;
  55.                 break;
  56.             case 6:
  57.                 $druha = "00".$druha;
  58.                 break;
  59.             case 7:
  60.                 $druha = "0".$druha;
  61.                 break;
  62.         }
  63.  
  64.         switch (strlen($tretia)) {
  65.             case 1:
  66.                 $tretia = "0000000".$tretia;
  67.                 break;
  68.             case 2:
  69.                 $tretia = "000000".$tretia;
  70.                 break;
  71.             case 3:
  72.                 $tretia = "00000".$tretia;
  73.                 break;
  74.             case 4:
  75.                 $tretia = "0000".$tretia;
  76.                 break;
  77.             case 5:
  78.                 $tretia = "000".$tretia;
  79.                 break;
  80.             case 6:
  81.                 $tretia = "00".$tretia;
  82.                 break;
  83.             case 7:
  84.                 $tretia = "0".$tretia;
  85.                 break;
  86.         }
  87.  
  88.         switch (strlen($stvrta)) {
  89.             case 1:
  90.                 $stvrta = "0000000".$stvrta;
  91.                 break;
  92.             case 2:
  93.                 $stvrta = "000000".$stvrta;
  94.                 break;
  95.             case 3:
  96.                 $stvrta = "00000".$stvrta;
  97.                 break;
  98.             case 4:
  99.                 $stvrta = "0000".$stvrta;
  100.                 break;
  101.             case 5:
  102.                 $stvrta = "000".$stvrta;
  103.                 break;
  104.             case 6:
  105.                 $stvrta = "00".$stvrta;
  106.                 break;
  107.             case 7:
  108.                 $stvrta = "0".$stvrta;
  109.                 break;
  110.         }
  111.  
  112.         $temp = $prva.$druha.$tretia.$stvrta;
  113.         $temp = substr($temp, 0, $prefix);
  114.         $temp = str_pad($temp, 32, "0", STR_PAD_RIGHT);
  115.         $prvaip = bindec(substr($temp, 0, 8)).".".bindec(substr($temp, 8, 8)).".".bindec(substr($temp, 16, 8)).".".bindec(substr($temp, 24, 8));
  116.         $binmaska = substr($temp, 0, 8).".".substr($temp, 8, 8).".".substr($temp, 16, 8).".".substr($temp, 24, 8);
  117.         $maska = bindec(substr($temp, 0, 8)).".".bindec(substr($temp, 8, 8)).".".bindec(substr($temp, 16, 8)).".".bindec(substr($temp, 24, 8))."/".strval($prefix);
  118.  
  119.  
  120.         $temp = $prva.$druha.$tretia.$stvrta;
  121.         $temp = substr($temp, 0, $prefix);
  122.         $temp = str_pad($temp, 32, "1", STR_PAD_RIGHT);
  123.     $poslednaip = bindec(substr($temp, 0, 8)).".".bindec(substr($temp, 8, 8)).".".bindec(substr($temp, 16, 8)).".".bindec(substr($temp, 24, 8));
  124.         $binbroadcast = substr($temp, 0, 8).".".substr($temp, 8, 8).".".substr($temp, 16, 8).".".substr($temp, 24, 8);
  125.         $broadcast = bindec(substr($temp, 0, 8)).".".bindec(substr($temp, 8, 8)).".".bindec(substr($temp, 16, 8)).".".bindec(substr($temp, 24, 8))."/".strval($prefix);
  126.  
  127.         $pocetip = pow(2, 32-$prefix)-2;
  128.  
  129.         if(!empty($maska) || !empty($broadcast) || !empty($prvaip) || !empty($poslednaip)){
  130.  
  131.             $output = "<div class='output'>
  132.                     <p>Maska siete: <strong>$binmaska</strong></p>
  133.                     <p>Maska siete: <strong>$maska</strong></p>
  134.                     <p>Broadcast siete: <strong>$binbroadcast</strong></p>
  135.                     <p>Broadcast siete: <strong>$broadcast</strong></p>
  136.                     <p>Prvá použiteľná IP: <strong>".substr($prvaip,0, -1).substr_replace($prvaip, substr($prvaip, -1)+1, 0)."</strong></p>
  137.                     <p>Posledná použiteľná IP: <strong>".substr($poslednaip,0, -1).substr_replace($poslednaip, substr($poslednaip, -1)-1, 0)."</strong></p>
  138.                     <p>Počet použiteľných IP: <strong>$pocetip</strong></p>
  139.                 </div>";
  140.  
  141.         }
  142.  
  143.     }
  144.  
  145. }
  146.  
  147.  
  148.  
  149. ?>
  150.  
  151. <!DOCTYPE html>
  152.  
  153. <html>
  154.  
  155. <head>
  156.  
  157.     <title>RoyalPortal.eu</title>
  158.  
  159.     <meta name="author" content="Roman Vašek">
  160.  
  161.     <meta name="description" content="">
  162.  
  163.     <meta name="keywords" content="">
  164.  
  165.     <meta charset="UTF-8">
  166.  
  167.     <meta name="viewport" content="width=device-width, initial-scale=1">
  168.  
  169.     <link rel="stylesheet" type="text/css" href="assets/css/bootstrap.min.css">
  170.  
  171.     <style>
  172.  
  173.         body{
  174.  
  175.             margin-top: 3em;
  176.  
  177.         }
  178.  
  179.         label,input.form-control{
  180.  
  181.             display:  inline-block;
  182.  
  183.         }
  184.  
  185.         input.form-control{
  186.  
  187.             width: 4.75em;
  188.  
  189.         }
  190.  
  191.         .output{
  192.  
  193.             margin-top: .25em;
  194.  
  195.             text-align: left;
  196.  
  197.         }
  198.  
  199.     </style>
  200.  
  201. </head>
  202.  
  203. <body>
  204.  
  205.     <div class="container text-center">
  206.  
  207.         <?=$error?>
  208.  
  209.         <form method="post">
  210.  
  211.           <div class="form-group">
  212.  
  213.             <input type="number" class="form-control" min="0" max="255" name="prva" placeholder="<?=bindec($prva)?>">
  214.  
  215.             <label>.</label>
  216.  
  217.             <input type="number" class="form-control" min="0" max="255" name="druha" placeholder="<?=bindec($druha)?>">
  218.  
  219.             <label>.</label>
  220.  
  221.             <input type="number" class="form-control" min="0" max="255" name="tretia" placeholder="<?=bindec($tretia)?>">
  222.  
  223.             <label>.</label>
  224.  
  225.             <input type="number" class="form-control" min="0" max="255" name="stvrta" placeholder="<?=bindec($stvrta)?>">
  226.  
  227.             <label>/</label>
  228.  
  229.             <input type="number" class="form-control" min="1" max="32" name="prefix" placeholder="<?=$prefix?>">
  230.  
  231.           </div>
  232.  
  233.         <button type="submit" name="submit" class="btn btn-primary">Odoslať</button>
  234.  
  235.         </form>
  236.  
  237.         <?=$output?>
  238.  
  239.     </div>
  240.  
  241. </body>
  242.  
  243. </html>
Add Comment
Please, Sign In to add comment