Ir para conteúdo
Fórum Script Brasil
  • 0

Capturando o numero do MAC da placa de rede


Mineiro491

Pergunta

Bom dia pessoal, Estou com o seguite problema.

Eu tenho um provedor wireless, como a demanda da rede tem crescido bastante eu resolvi instalar um sistema Mikrotik para fazer um melhor controle de acesso dos usuarios. Nesse caso eu tenho que cadastrar todos os usuarios no sistema, para facilitar o cadastro de todos eu resolvi criar uma intranet, com isso quando o usuario faz o acesso pela primeira vez no sistema ele é redirecionado para um formulario de cadastro que eu recebo via e-mail. Onde ele vai digitar o nome, telefone, email, usuario, senha e endereço de mac. Dai surgiu meu problema o endereço de MAC, muitos não sabiam onde buscar essa informação. Então para viabilizar o cadastro para os usuarios adicionei o seguite codigo no meu formulario:

PEGAR O NUMERO DO MAC

<?
function pegaMac(){
    exec("ipconfig /all", $output);
    foreach($output as $line){
        if (preg_match("/(.*)Endereço físico(.*)/", $line)){
            $mac = $line;
            $mac = str_replace("Endereço físico . . . . . . . . . . :","",$mac);
        }
    }
    return $mac;
}

echo "Mac da Placa: ".pegaMac();
?>
Esse codigo mostra para o usuario o MAC da sua placa de rede, bastava apenas o usuario digitar no campo do formulario o MAC da placa. Mas agora tenho recebido muitos MAC digitados incorretamente. Desde então tenho tentado unir esse script com meu formulario de cadastro. O formulario que estou utilizando é um form mail comum, contendo três arquivos o formulario.html, process.php e global.inc.php. Segue abaixo o codigo dos arquivos.
FORMULARIO.HTML

<HTML><HEAD><TITLE>Formulario de Cadastro para Usuarios</TITLE></HEAD>
<BODY>
<font face='arial' size=2><b>Todos os intens marcados com * são de preenchimento obrigatorio:<br>
<form enctype='multipart/form-data' action='process.php' method='post'>
<table border=1 bordercolor='#000000'><tr><tr>
<table width='50%' border=0>
<tr><td bgcolor='#C0C0C0'> NOME<font color='#ff0000'>*</font></td>
<td bgcolor='#C0C0C0'>
<input type=text name='NOME' size=50></td></tr>
<tr><td bgcolor='#CCCCCC'> TELEFONE<font color='#ff0000'>*</font></td>
<td bgcolor='#CCCCCC'>
<input type=text name='TELEFONE' size=50></td></tr>
<tr><td bgcolor='#C0C0C0'> EMAIL<font color='#ff0000'>*</font></td>
<td bgcolor='#C0C0C0'>
<input type=email name='EMAIL' size=50></td></tr>
<tr><td bgcolor='#CCCCCC'> USUARIO<font color='#ff0000'>*</font></td>
<td bgcolor='#CCCCCC'>
<input type=text name='USUARIO' size=50></td></tr>
<tr><td bgcolor='#C0C0C0'> SENHA<font color='#ff0000'>*</font></td>
<td bgcolor='#C0C0C0'>
<input type=text name='SENHA' size=50></td></tr>
<tr><td bgcolor='#CCCCCC'> CADASTRO DO MAC<font color='#ff0000'>*</font></td>
<td bgcolor='#CCCCCC'>
<input type=text name='CADASTRODOMAC' size=50></td></tr>
</table>
</td></tr></table>
<input type='submit' value='Enviar Cadastro'> <input type=reset value='Limpar Formulario'></form>
</BODY></HTML>
PROCESS.PHP

<?php
include("global.inc.php");
$errors=0;
$error="Os seguintes erros ocorreram durante o processamento de seu cadastro.<ul>";
pt_register('POST','NOME');
pt_register('POST','TELEFONE');
pt_register('POST','EMAIL');
pt_register('POST','USUARIO');
pt_register('POST','SENHA');
pt_register('POST','CADASTRODOMAC');
if($NOME=="" || $TELEFONE=="" || $EMAIL=="" || $USUARIO=="" || $SENHA=="" || $CADASTRODOMAC=="" ){
$errors=1;
$error.="<li>Você não preencheu um ou mais dos campos obrigatórios. Por favor, volte e tente novamente.";
}
if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$EMAIL)){
$error.="<li>Endereço de E-mail invalido.";
$errors=1;
}
if($errors==1) echo $error;
else{
$where_form_is="http".($HTTP_SERVER_VARS["HTTPS"]=="on"?"s":"")."://".$SERVER_NAME.strrev(strstr(strrev($PHP_SELF),"/"));
$message="NOME: ".$NOME."
TELEFONE: ".$TELEFONE."
EMAIL: ".$EMAIL."
USUARIO: ".$USUARIO."
SENHA: ".$SENHA."
CADASTRO DO MAC: ".$CADASTRODOMAC."
";
$message = stripslashes($message);
mail("postmaster@localhost","$NOME",$message,"From: Cadastro Intranet");

header("Refresh: 0;url=efetuado.html");
?><?php 
}
?>
GLOBAL.INC.PHP

<?php

function pt_register()
{
  $num_args = func_num_args();
   $vars = array();

   if ($num_args >= 2) {
       $method = strtoupper(func_get_arg(0));

       if (($method != 'SESSION') && ($method != 'GET') && ($method != 'POST') && ($method != 'SERVER') && ($method != 'COOKIE') && ($method != 'ENV')) {
           die('The first argument of pt_register must be one of the following: GET, POST, SESSION, SERVER, COOKIE, or ENV');
     }

       $varname = "HTTP_{$method}_VARS";
      global ${$varname};

       for ($i = 1; $i < $num_args; $i++) {
           $parameter = func_get_arg($i);

           if (isset(${$varname}[$parameter])) {
               global $$parameter;
               $$parameter = ${$varname}[$parameter];
          }

       }

   } else {
       die('VOCÊ DEVE ESPECIFICAR PELO MENOS DOIS ARGUMENTOS');
   }

}

?>

Sera que alguém pode me ajudar com esse problema?

Muito obrigado pela atenção.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
Bom dia pessoal, Estou com o seguite problema.

Eu tenho um provedor wireless, como a demanda da rede tem crescido bastante eu resolvi instalar um sistema Mikrotik para fazer um melhor controle de acesso dos usuarios. Nesse caso eu tenho que cadastrar todos os usuarios no sistema, para facilitar o cadastro de todos eu resolvi criar uma intranet, com isso quando o usuario faz o acesso pela primeira vez no sistema ele é redirecionado para um formulario de cadastro que eu recebo via e-mail. Onde ele vai digitar o nome, telefone, email, usuario, senha e endereço de mac. Dai surgiu meu problema o endereço de MAC, muitos não sabiam onde buscar essa informação. Então para viabilizar o cadastro para os usuarios adicionei o seguite codigo no meu formulario:

PEGAR O NUMERO DO MAC

<?
function pegaMac(){
    exec("ipconfig /all", $output);
    foreach($output as $line){
        if (preg_match("/(.*)Endereço físico(.*)/", $line)){
            $mac = $line;
            $mac = str_replace("Endereço físico . . . . . . . . . . :","",$mac);
        }
    }
    return $mac;
}

echo "Mac da Placa: ".pegaMac();
?>
Esse codigo mostra para o usuario o MAC da sua placa de rede, bastava apenas o usuario digitar no campo do formulario o MAC da placa. Mas agora tenho recebido muitos MAC digitados incorretamente. Desde então tenho tentado unir esse script com meu formulario de cadastro. O formulario que estou utilizando é um form mail comum, contendo três arquivos o formulario.html, process.php e global.inc.php. Segue abaixo o codigo dos arquivos.
FORMULARIO.HTML

<HTML><HEAD><TITLE>Formulario de Cadastro para Usuarios</TITLE></HEAD>
<BODY>
<font face='arial' size=2><b>Todos os intens marcados com * são de preenchimento obrigatorio:<br>
<form enctype='multipart/form-data' action='process.php' method='post'>
<table border=1 bordercolor='#000000'><tr><tr>
<table width='50%' border=0>
<tr><td bgcolor='#C0C0C0'> NOME<font color='#ff0000'>*</font></td>
<td bgcolor='#C0C0C0'>
<input type=text name='NOME' size=50></td></tr>
<tr><td bgcolor='#CCCCCC'> TELEFONE<font color='#ff0000'>*</font></td>
<td bgcolor='#CCCCCC'>
<input type=text name='TELEFONE' size=50></td></tr>
<tr><td bgcolor='#C0C0C0'> EMAIL<font color='#ff0000'>*</font></td>
<td bgcolor='#C0C0C0'>
<input type=email name='EMAIL' size=50></td></tr>
<tr><td bgcolor='#CCCCCC'> USUARIO<font color='#ff0000'>*</font></td>
<td bgcolor='#CCCCCC'>
<input type=text name='USUARIO' size=50></td></tr>
<tr><td bgcolor='#C0C0C0'> SENHA<font color='#ff0000'>*</font></td>
<td bgcolor='#C0C0C0'>
<input type=text name='SENHA' size=50></td></tr>
<tr><td bgcolor='#CCCCCC'> CADASTRO DO MAC<font color='#ff0000'>*</font></td>
<td bgcolor='#CCCCCC'>
<input type=text name='CADASTRODOMAC' size=50></td></tr>
</table>
</td></tr></table>
<input type='submit' value='Enviar Cadastro'> <input type=reset value='Limpar Formulario'></form>
</BODY></HTML>
PROCESS.PHP

<?php
include("global.inc.php");
$errors=0;
$error="Os seguintes erros ocorreram durante o processamento de seu cadastro.<ul>";
pt_register('POST','NOME');
pt_register('POST','TELEFONE');
pt_register('POST','EMAIL');
pt_register('POST','USUARIO');
pt_register('POST','SENHA');
pt_register('POST','CADASTRODOMAC');
if($NOME=="" || $TELEFONE=="" || $EMAIL=="" || $USUARIO=="" || $SENHA=="" || $CADASTRODOMAC=="" ){
$errors=1;
$error.="<li>Você não preencheu um ou mais dos campos obrigatórios. Por favor, volte e tente novamente.";
}
if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$EMAIL)){
$error.="<li>Endereço de E-mail invalido.";
$errors=1;
}
if($errors==1) echo $error;
else{
$where_form_is="http".($HTTP_SERVER_VARS["HTTPS"]=="on"?"s":"")."://".$SERVER_NAME.strrev(strstr(strrev($PHP_SELF),"/"));
$message="NOME: ".$NOME."
TELEFONE: ".$TELEFONE."
EMAIL: ".$EMAIL."
USUARIO: ".$USUARIO."
SENHA: ".$SENHA."
CADASTRO DO MAC: ".$CADASTRODOMAC."
";
$message = stripslashes($message);
mail("postmaster@localhost","$NOME",$message,"From: Cadastro Intranet");

header("Refresh: 0;url=efetuado.html");
?><?php 
}
?>
GLOBAL.INC.PHP

<?php

function pt_register()
{
  $num_args = func_num_args();
   $vars = array();

   if ($num_args >= 2) {
       $method = strtoupper(func_get_arg(0));

       if (($method != 'SESSION') && ($method != 'GET') && ($method != 'POST') && ($method != 'SERVER') && ($method != 'COOKIE') && ($method != 'ENV')) {
           die('The first argument of pt_register must be one of the following: GET, POST, SESSION, SERVER, COOKIE, or ENV');
     }

       $varname = "HTTP_{$method}_VARS";
      global ${$varname};

       for ($i = 1; $i < $num_args; $i++) {
           $parameter = func_get_arg($i);

           if (isset(${$varname}[$parameter])) {
               global $$parameter;
               $$parameter = ${$varname}[$parameter];
          }

       }

   } else {
       die('VOCÊ DEVE ESPECIFICAR PELO MENOS DOIS ARGUMENTOS');
   }

}

?>

Sera que alguém pode me ajudar com esse problema?

Muito obrigado pela atenção.

function pegaMac(){

exec("ipconfig /all", $output);

foreach($output as $line){

if (preg_match("/(.*)Endereço físico(.*)/", $line)){

$mac = $line;

$mac = str_replace("Endereço físico . . . . . . . . . . :","",$mac);

}

}

return $mac;

}

jé existe um campo para o usuario digitar os dados basta colocá o retorno da função na propriedade value do campo e você pode especifica-lo como hidden ou readonly para que o usuario não mexa nos dados

ex:

$Mac=pegaMac();

<input type=text name='CADASTRODOMAC' id ='CADASTRODOMAC' value='<?php echo $Mac; ?>' size=50 readonly>

até mais

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...