- 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!!!