
 
		
		
    
-  Cadastro de Ip e Maquina
 
	
	
 
 
 
		
			
	+ Responder ao Tópico
	
	
	
	
	
	
		
			
- 
	
	
		
		
			
				
				
				
					
 Cadastro de Ip e Maquina
				
				
						
							
							
						
						
				
					
						
							Salve a todos..
A muito estou apanhando em busca de uma solução e espero que possam me ajudar.
Estou precisando criar um sisteminha simples em php e mysql de cadastro de Ip e maquinas da minha rede local, para que eu possa ter um controle de ips ja utilizados, reservados, ativos e outros.
Mais como ja disse ainda estou apanhando, se alguem tiver alguma dica de como proceder agradecia muitoo, pois sou iniciante nessa area!!
Obrigado!!!!
						
					 
					
				 
			 
			
			
		 
	 
		
	
 
- 
	
	
		
		
			
				
				
				
					
 Re: Cadastro de Ip e Maquina
				
				
						
						
				
					
						
							#######Segue modelo de uma tabela
CREATE TABLE IF NOT EXISTS `iplivre` (
  `id` int(11) NOT NULL auto_increment,
  `ip` varchar(200) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=454 ; 
#### Codigo para mostrar os ip em sequência...
####
<td colspan="3" bgcolor="#e9e9e9"><span id="ip6">
                <label>
                <?php
include("configuracao.php");
$db = mysql_connect ($host, $login_db, $senha_db)or die("ERROR".mysql_error());
$basedados = mysql_select_db($database)or die("ERROR".mysql_error());
?>
                <select name="ip" id="ip" class="record"  >
                  <?php
$sql = "select ip from iplivre ORDER BY id ASC";
$result = mysql_query($sql);
$linha = mysql_num_rows($result);
for ($i=0;$i<$linha;$i++)
{
$reg = mysql_fetch_row($result);
echo "<option>$reg[0]</option>";
}
?>
                </select>
                </label>
                </td>
Dentro do form que vai gravar no mysql, vc coloca um regra para deletar o ip escolhido, em outra tabela vai ficar os dados da maquina e o ip q vc escolheu.
						
					 
					
				 
			 
			
			
				
				
				
					
						Última edição por  fsoaress76; 29-04-2010 às 10:33.
					
					
				
				
				
				
				
				
				
			 
			
			
		 
	 
		
	
 
- 
	
	
		
		
			
				
				
				
					
 Re: Cadastro de Ip e Maquina
				
				
						
						
				
					
						
							Meu amigo fsoares, você esta me ajudando muito, a dica foi exelente.
Criei meu banco de dados e minha apllicação em html e php, agora que ta o problema, como por exemplo eu pesquisaria o proximo ip disponivel (livre) dentro da tabela.
O que estou pensando:
1 - No campo Ip de rede transformar todos os numeros inseridos em binarios e tenho que colocar o delimitador, estava pensando no ponto ( 192.168.20.3) para não misturar os octetos.
2 - Transformar a mascara de rede em binario.
3 - Fazer um AND binario para saber qual o endereço de rede.
Agora como fazer tudo isso e ainda buscar na tabela o proximo IP livre.
Agradeço muito sua ajuda e se quiser me add no msn!
						
					 
					
				 
			 
			
			
		 
	 
		
	
 
- 
	
	
		
		
			
				
				
				
					
 Re: Cadastro de Ip e Maquina
				
				
						
						
				
					
						
							Eu tbm estou querendo algo assim, vou pesquisar aqui.
						
					 
					
				 
			 
			
			
		 
	 
		
	
 
- 
	
	
		
		
			
				
				
				
					
 Re: Cadastro de Ip e Maquina
				
				
						
						
				
					
						
							Eu uso VPN aki (RADIUS+MYSQL), no cadastro (formulário) eu pego a sequencia de ip com esse condigo acima... e escolho qual a faixa de IP´s que eu quero. 
Ex no Fomulário: 
Cidade_1
192.168.2.2
192.168.3.2
192.168.4.2
CIdade_2
10.100.20.2
10.100.21.2
10.100.22.2
Quando mando salvar.
#####
$ip = $_POST['ip'];
#VERIFICO SE ESSE IP NAO ESTA JA CADASTRADO
$pesquisar = mysql_query("SELECT ip FROM tabela_cadastro WHERE ip = '$ip'", $db)or die("ERROR_Value".mysql_error());
$contagem = mysql_num_rows($pesquisar);
if ( $contagem > 0 ) {
echo "O ip que você escolheu já está cadastrado.<br>";
echo "volte e reveja";
}
else{
$cadastrar = mysql_query("INSERT INTO tabela_cadastro (ip, fulano, siclano)
VALUES ('$ip','$fulano',,'$siclano')", $db)or die("ERRO no cadastro do usuário:". mysql_error());
#apaga ip livre
$del_ip = mysql_query("DELETE FROM iplivre WHERE ip='$ip'") or die("ERROR tabela ip".mysql_error());
A Macara vc pode colocar no momento do cadastro.
Ou se vc quizer pode fazer isso aqui nao sei para que vc que isso.
//$masc = "ssh $server 'echo iptables -t nat -A POSTROUTING -s $ip -j MASQUERADE >> /dados/users.sh'\n";
//$for = "ssh $server 'echo iptables -A FORWARD -s $ip -j ACCEPT >> /dados/users.sh'\n";
//$for2 = "ssh $server 'echo iptables -A FORWARD -d $ip -j ACCEPT >> /dados/users.sh'\n";
//$regras = '/dados/users.sh';
//if (!$ip){
//echo "Arquivo não encontrado";
//exit();
//}
//$fp = fopen($regras, 'a+');
//fwrite($fp, $masc);
//fwrite($fp, $for);
//fwrite($fp, $for2);
//fclose($fp);
						
					 
					
				 
			 
			
			
		 
	 
		
	
 
- 
	
	
		
		
			
				
				
				
					
 Re: Cadastro de Ip e Maquina
				
				
						
						
							
						
				
					
						
							Eai pessoal,,
Primeiramente eu gostaria de agradeçer muito a ajuda de todos e principalmente a paciência, SEM PALAVRAS.
Conforme orientações criei o sisteminha de cadastro de ip mais ainda estou tendo alguma dificuldade de entender como ira funcionar, pq sou SUPER leigo nesse assunto, mais estou curtindo muito.
Criei em html e php o sistema de cadastro pra ter uma ideia.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>CADASTRO DE MAQUINAS E IP COM BANCO DE DADOS E PHP</title>
<style type="text/css">
<!--
.style1 {
color: #FF0000;
font-size: x-small;
}
.style3 {color: #0000FF; font-size: x-small; }
</style>
<script type="text/javascript">
function validaCampo()
{
if(document.cadastro.maquina.value=="")
{
alert("O Campo maquina é obrigatório!");
return false;
}
else
if(document.cadastro.ip.value=="")
{
alert("O Campo ip é obrigatório!");
return false;
}
else
if(document.cadastro.mascara.value=="")
{
alert("O Campo mascara é obrigatório!");
return false;
}
<!-- Fim do Javascript -->
</script>
</head>
<body>
<form id="cadastro" name="cadastro" method="post" action="cadastro.php" onsubmit="return validaCampo(); return false;">
  <table width="625" border="0">
    <tr>
      <td>
        <?php 
	 include("./fuctions.php");
$conexao = mysql_connect("localhost", "teste", "senha1") or die ("Erro de conexão com banco de dados, o seguinte erro de conexao BD ocorreu -> ".mysql_error());
         @mysql_select_db("cadastro",$conexao); 
         $query = "SELECT ip FROM maquinas ORDER BY INET_ATON(ip) ASC;";
         $selecao = mysql_query($query,$conexao);
         $linha = mysql_num_rows($selecao);
         for ($i=0;$i<$linha;$i++){
           $reg = mysql_fetch_row($selecao);
           echo "$reg[0] \n <br>";
	   $binario=converterIPparaBinario($reg[0]);
	   echo "BINARIO = $binario \n<br>";
	   //$aux1=substr($reg[0],0,strpos($reg[0],'.'));
           //$aux2=substr($reg[0],strpos($reg[0],'.')+1,strpos($reg[0],'.'));
           //echo "AUX = $aux1 \n<br>";
           //echo "AUX2 = $aux2 \n<br>";
 	   
         }
       ?>
       <br><br><br><br><br><br><br>
</td>
      
    <tr>
      <td width="32">Maquina:</td>
      <td width="30"><input name="maquina" type="text" id="maquina" size="20" maxlength="20" />
        <span class="style1">*</span></td>
    </tr>
      <td>Ip:</td>
      <td><input name="ip" type="text" id="ip" />
        <span class="style3">Apenas números</span> </td>
    </tr>
      <td>Mascara:</td>
      <td><input name="mascara" type="text" id="mascara" />
        <span class="style3">Apenas números</span> </td>
    </tr>
      <td colspan="2"><p>
        <input name="cadastrar" type="submit" id="cadastrar" value="Concluir meu Cadastro!" /> 
        
          <input name="limpar" type="reset" id="limpar" value="Limpar Campos preenchidos!" />
          
          <span class="style1">* Campos com * são obrigatórios!          </span></p>
      <p>  </p></td>
    </tr>
  </table>
</form>
</body>
</html>
Blza:
Agora o sistema que chama o banco de dados chamado de cadastro.php
<?php 
$maquina= $_POST ["maquina"];
$ip= $_POST ["ip"];
$mascara= $_POST ["mascara"];
echo "$maquina $ip $mascara";
$conexao = mysql_connect("localhost", "teste", "senha1") or die ("Erro de conexão com banco de dados, o seguinte erro de conexao BD ocorreu -> ".mysql_error());
@mysql_select_db("cadastro",$conexao); 
$query = "INSERT INTO maquinas(maquina,ip,mascara) VALUES ('$maquina', '$ip' , '$mascara');";
mysql_query($query,$conexao);
echo "Seu cadastro foi realizado com sucesso!";
?>
Por fim "tentei" criar uma função chamada funcions.php.
<?php
function converterIPparaBinario($valor){
$valores = explode(".",$valor); //Separa o IP dos pontos
echo "0 = $valores[0]\n<br>";
echo "1 = $valores[1]\n<br>";
echo "2 = $valores[2]\n<br>";
echo "3 = $valores[3]\n<br>";
echo "4 = $valores[4]\n<br>";
$resultado = "";
for ($i = 0 ; $i < count($valores) ; $i++){
        $valores[$i] = decbin($valores[$i]); //Converte o valor daquela parte do IP para binário
        if ($i < count($valores)-1){ //Verifica se não é o último registro para colocar o ponto
                $resultado .= $valores[$i] . '.';       
        }
        else{ //Se for o último registro, então não coloca o ponto
                $resultado .= $valores[$i];             
        }
}
return $resultado;
}
?>
Ok.
Tudo aparentemente funcionando.
Mais minha duvida vai ser a seguinte:
Como eu poço orientar meu sistema que numa rede por exemplo de classe A eu posso ter apenas 256 Host, numa rede de classe B apenas xxx de redes no maximo, e fazer com que ele não embaralhe tudo???
Caso não entendam minha duvida fiquem a vontade!!!
Mais uma vez agradeço a todos!!!