gostaria de um desafio pra mim mesmo quero acender lampada fora da minha rede ja criei conta no dyndns ja configurei router porta 80

prezados amigo alguem pode ajudar 

tenho code do jose miguel me passou.

ele me ajudou muito.sem ele tava perdido

resulmindo

quero ligar lampada fora da minha rede.

via celular 3g

tenho dyndns 

o resto nao sei nada.esse eo code

#include <PS2Keyboard.h>
#include <SPI.h>
#include <Ethernet.h>
#include <EEPROM.h>
#include <LiquidCrystal.h>
#include "DHT.h"
#define DHTPIN A12 // what pin we're connected to
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
#define BAUD_RATE 9600
#define TERM_CHAR '\n'
#define BUF_LEN 30
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 0, 188 };
byte gateway[] = { 192, 168, 0, 1 };
byte subnet[] = { 255, 255, 255, 0 };
EthernetServer server(80);
byte sampledata=50;
float h;
float t;
int i;
int count=0;
boolean DispAlarme = false;
boolean FlagAlarme = true;
boolean AIMode = false;
char c;
String readString = String(BUF_LEN);
PS2Keyboard ps2keyboard;
String senha = "2589";
String senhadedesbloqueio = "4526";
String senhadigitada = "";
const int DataPin = 2;
const int IRQPin = 3;
int buzzer = 20;
int ContatoSecoState1 = 0;
int ContatoSecoState2 = 0;
int ContatoSecoState3 = 0;
int ContatoSecoState4 = 0;
int ContatoSecoState5 = 0;
int ContatoSecoState6 = 0;
int ContatoSecoState7 = 0;
int ContatoSecoState8 = 0;
const int rele1 = 22;
const int rele2 = 23;
const int rele3 = 24;
const int rele4 = 25;
const int rele5 = 26;
const int rele6 = 27;
const int rele7 = 28;
const int rele8 = 29;
const int rele9 = 42;
const int rele10 = 43;
const int contatoseco8 = 41;
const int contatoseco7 = 40;
const int contatoseco6 = 49;
const int contatoseco5 = 48;
const int contatoseco4 = 47;
const int contatoseco3 = 46;
const int contatoseco2 = 45;
const int contatoseco1 = 44;
const int Sirene = 33;
LiquidCrystal lcd(9, 8, 7, 6, 5, 4);
void setup(){
lcd.begin(16, 2);


lcd.print("OI RESIDENTE");
pinMode (buzzer, OUTPUT);
pinMode(rele1, OUTPUT);
pinMode(rele2, OUTPUT);
pinMode(rele3, OUTPUT);
pinMode(rele4, OUTPUT);
pinMode(rele5, OUTPUT);
pinMode(rele6, OUTPUT);
pinMode(rele7, OUTPUT);
pinMode(rele8, OUTPUT);
pinMode(rele9, OUTPUT);
pinMode(rele10, OUTPUT);
pinMode(Sirene, OUTPUT);

pinMode(contatoseco6, INPUT);
pinMode(contatoseco5, INPUT);
pinMode(contatoseco4, INPUT);
pinMode(contatoseco3, INPUT);
pinMode(contatoseco2, INPUT);
pinMode(contatoseco1, INPUT);
pinMode(contatoseco2, INPUT);
pinMode(contatoseco1, INPUT);

Ethernet.begin(mac, ip, gateway, subnet);
Serial.begin(9600);
Serial2.begin(9600);
Serial3.begin(9600);
delay (1000);
ps2keyboard.begin(DataPin, IRQPin);
Serial.begin(9600);
Serial.println("aguardando teclas");
inicia_lcd();
inicia_buzzer();
digitalWrite(Sirene, HIGH);
delay (200);
digitalWrite(Sirene, LOW);
FlagAlarme = true;
lcd.setCursor(0,1);
lcd.clear();
lcd.print("ALARME ATIVADO");
Serial.println("alarme ativado");


}
void loop(){
if (ps2keyboard.available())
{
char teclapressionada = ps2keyboard.read();
tone(buzzer, 1500);
delay (200);
noTone(buzzer);
delay(200);
Serial.println(teclapressionada);
senhadigitada += teclapressionada;
if (teclapressionada == PS2_ENTER)
{
Serial.println("a tecla enter foi pressionada");
Serial.println("senha digitada.: "+senhadigitada);

if (senha != senhadigitada.substring(0,4))
{
inicia_buzzer();
Serial.println("codigo incorreto");
delay (2000);
count++;
lcd.clear();
lcd.print("INSIRA A SENHA");

if (count == 3)
{
tone(buzzer,1500);
delay(2000);
noTone(buzzer);
delay(500);
Serial.println("acionamento por senha errada");
count = 0;
}

}
if (senha == senhadigitada.substring(0,4))
{
inicia_buzzer();
digitalWrite(Sirene, HIGH);
delay (200);
digitalWrite(Sirene, LOW);
FlagAlarme = true;
lcd.setCursor(0,1);
lcd.clear();
lcd.print("ALARME ATIVADO");
Serial.println("alarme ativado");
count = 0;

}

senhadigitada = "" ;
}
else if (teclapressionada == PS2_DELETE)
{
senhadigitada = "";
Serial.println("a tecla anular foi pressionada");
}
}


leserial();
rede();
count++;

if(count == 1000){
h = dht.readHumidity(); //A aquisição dessa informação demora 1 seg , então colocar isto no loop principal afeta o desempenho do programa
t = dht.readTemperature(); // Mesma regra
lcd.setCursor(0,1);
lcd.print("RH: ");
lcd.setCursor(4,1);
lcd.print(h);


lcd.setCursor(8,1);
lcd.print("Temp: ");
lcd.setCursor(13,1);
lcd.print(t);
count=0;
}
if(readString.indexOf("r1on") >0)
{

digitalWrite(rele1, HIGH);
Serial.println("Ligando Rele 1");
Serial3.println("Ligando Rele 1");
Serial.println(readString);
}
if(readString.indexOf("r1off") >0)
{

digitalWrite(rele1, LOW);
Serial.println("Desligando Rele 1");
Serial3.println("Desligando Rele 1");
Serial.println(readString);
}
if(readString.indexOf("r2on") >0)
{
digitalWrite(rele2, HIGH);
delay(1000);
digitalWrite(rele2,LOW);
Serial.println("Ligando Rele 2");
Serial3.println("Ligando Rele 2");
Serial.println(readString);

}
if(readString.indexOf("r2off") >0)
{

digitalWrite(rele2, LOW);
Serial.println("Desligando Rele 2");
Serial3.println("Desligando Rele 2");
Serial.println(readString);
}
if(readString.indexOf("r3on") >0)
{
digitalWrite(rele3, HIGH);
Serial.println("Ligando Rele 3");
Serial3.println("Ligando Rele 3");
Serial.println(readString);

}
if(readString.indexOf("r3off") >0)
{

digitalWrite(rele3, LOW);
Serial.println("Desligando Rele 3");
Serial3.println("Desligando Rele 3");
Serial.println(readString);
}
if(readString.indexOf("r4on") >0)
{
digitalWrite(rele4, HIGH);
Serial.println("Ligando Rele 4");
Serial3.println("Ligando Rele 4");
Serial.println(readString);

}
if(readString.indexOf("r4off") >0)
{

digitalWrite(rele4, LOW);
Serial.println("Desligando Rele 4");
Serial3.println("Desligando Rele 4");
Serial.println(readString);
}

if(readString.indexOf("r5on") >0)
{
digitalWrite(rele5, HIGH);
Serial.println("Ligando Rele 5");
Serial3.println("Ligando Rele 5");
Serial.println(readString);

}
if(readString.indexOf("r5off") >0)
{

digitalWrite(rele5, LOW);
Serial.println("Desligando Rele 5");
Serial3.println("Desligando Rele 5");
Serial.println(readString);
}

if(readString.indexOf("r6on") >0)
{
digitalWrite(rele6, HIGH);
Serial.println("Ligando Rele 6");
Serial3.println("Ligando Rele 6");
Serial.println(readString);

}
if(readString.indexOf("r6off") >0)
{

digitalWrite(rele6, LOW);
Serial.println("Desligando Rele 6");
Serial3.println("Desligando Rele 6");
Serial.println(readString);
}
if(readString.indexOf("r7on") >0)
{
digitalWrite(rele7, HIGH);
Serial.println("Ligando Rele 7");
Serial3.println("Ligando Rele 7");
Serial.println(readString);

}
if(readString.indexOf("r7off") >0)
{

digitalWrite(rele7, LOW);
Serial.println("Desligando Rele 7");
Serial3.println("Desligando Rele 7");
Serial.println(readString);
}
if(readString.indexOf("r8on") >0)
{
digitalWrite(rele8, HIGH);
Serial.println("Ligando Rele 8");
Serial3.println("Ligando Rele 8");
Serial.println(readString);

}
if(readString.indexOf("r8off") >0)
{

digitalWrite(rele8, LOW);
Serial.println("Desligando Rele 8");
Serial3.println("Desligando Rele 8");
Serial.println(readString);
}
if(readString.indexOf("r9on") >0)
{
digitalWrite(rele9, HIGH);
Serial.println("Ligando Rele 9");
Serial3.println("Ligando Rele 9");
Serial.println(readString);

}
if(readString.indexOf("r9off") >0)
{

digitalWrite(rele9, LOW);
Serial.println("Desligando Rele 9");
Serial3.println("Desligando Rele 9");
Serial.println(readString);
}
if(readString.indexOf("r10on") >0)
{
digitalWrite(rele10, HIGH);
Serial.println("Ligando Rele 10");
Serial3.println("Ligando Rele 10");
Serial.println(readString);

}
if(readString.indexOf("r10off") >0)
{

digitalWrite(rele10, LOW);
Serial.println("Desligando Rele 10");
Serial3.println("Desligando Rele 10");
Serial.println(readString);
}

if(readString.indexOf("all=Ativar+Alarme") >0)//replaces if(readString.contains("L=1"))
{
FlagAlarme = true;
lcd.setCursor(0,1);
lcd.print(" Alarme Ativado ");
//delay(10000);
}
if(readString.indexOf("all=Desativar+Alarme") >0)//replaces if(readString.contains("L=1"))
{
FlagAlarme = false;
DispAlarme = false;
digitalWrite(Sirene, LOW);
lcd.setCursor(0,1);
lcd.print(" Alarme Desativado ");

}


if (FlagAlarme == true){
le_sensores();


if (DispAlarme == true){
digitalWrite(Sirene, HIGH);
lcd.setCursor(0,1);
lcd.print("Falha na Seguranca");
}
}
readString="";

}

void le_sensores(){
ContatoSecoState1 = digitalRead(contatoseco1);
ContatoSecoState2 = digitalRead(contatoseco2);
ContatoSecoState3 = digitalRead(contatoseco3);
ContatoSecoState4 = digitalRead(contatoseco4);
ContatoSecoState5 = digitalRead(contatoseco5);
ContatoSecoState6 = digitalRead(contatoseco6);
ContatoSecoState7 = digitalRead(contatoseco7);
ContatoSecoState8 = digitalRead(contatoseco8);

if (ContatoSecoState1 == LOW){
DispAlarme = true;
}

if (ContatoSecoState2 == LOW){
DispAlarme = true;
}
if (ContatoSecoState3 == LOW){
DispAlarme = true;
}

if (ContatoSecoState4 == LOW){
DispAlarme = true;
}
if (ContatoSecoState5 == LOW){
DispAlarme = true;
}
if (ContatoSecoState6 == LOW){
DispAlarme = true;
}
if (ContatoSecoState7 == LOW){
DispAlarme = true;
}
if (ContatoSecoState8 == LOW){
DispAlarme = true;
}

}
void leserial(){
while(Serial.available()){
c = (char) Serial.read();
if (readString.length() < 100)
{
readString += c;
}
delay(1);
}
while(Serial2.available()){
c = (char) Serial2.read();
if (readString.length() < 100)
{

readString += c;
}
delay(1);
}
while(Serial3.available()){
c = (char) Serial3.read();
if (readString.length() < 100)
{

readString += c;
}
delay(1);
}

}

void rede(){
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
c = client.read();
if (readString.length() < 100)
{
readString += c;
}

if (c == '\n') {

if (readString.indexOf("?") <0)
{

}
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.print("<html><head>");
client.print("<title>AUTOMAÇAO MIGUEL</title>");
client.println("</head>");
client.print("<body bgcolor='#444444'>");

client.println("<br><hr />");
client.println("<h1><div align='center'><font color='#2076CD'>AUTOMACAO CASA MIGUEL</font color></div></h1>");
client.println("<hr /><br>");
client.println("<div align='left'><font face='Verdana' color='#FFFFFF'>Painel de Controle WEB:</font></div>");
client.println("<br>");
client.println("<div align='left'><font face='Verdana' color='#FFFFFF'>Temperatura:");
client.print(t);
client.println("</font></div>");
client.println("<div align='left'><font face='Verdana' color='#FFFFFF'>Umidade:");
client.print(h);
client.println("</font></div>");
client.println("<br>");
client.println("<table border='1' width='100%' cellpadding='5'>");
client.println("<tr bgColor='#222222'>");
client.println("<td bgcolor='#222222'><font face='Verdana' color='#CFCFCF' size='2'>Sala<br></font></td>");
client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r1on value='Acender'></form></td>");
client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r1off value='Apagar'></form></td>");

if (digitalRead(rele1)==1)
client.println("<td align='center'><font color='green' size='5'>LIG");
else
client.println("<td align='center'><font color='#CFCFCF' size='5'>DES");
client.println("</tr>");
client.println("<tr bgColor='#222222'>");
client.println("<td bgcolor='#222222'><font face='Verdana' color='#CFCFCF' size='2'>Cozinha<br></font></td>");
client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r2on value='Acender'></form></td>");
client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r2off value='Apagar'></form></td>");
if (digitalRead(rele2) == 1)
client.println("<td align='center'><font color='green' size='5'>LIG");
else
client.println("<td align='center'><font color='#CFCFCF' size='5'>DES");

client.println("</tr>");
client.println("<tr bgColor='#222222'>");
client.println("<td bgcolor='#222222'><font face='Verdana' color='#CFCFCF' size='2'>Garagem<br></font></td>");
client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r3on value='Acender'></form></td>");
client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r3off value='Apagar'></form></td>");
if (digitalRead(rele3) == 1)
client.println("<td align='center'><font color='green' size='5'>LIG");
else
client.println("<td align='center'><font color='#CFCFCF' size='5'>DES");

client.println("</tr>");

client.println("<tr bgColor='#222222'>");
client.println("<td bgcolor='#222222'><font face='Verdana' color='#CFCFCF' size='2'>Suite<br></font></td>");
client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r4on value='Acender'></form></td>");
client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r4off value='Apagar'></form></td>");
if (digitalRead(rele4) == 1)
client.println("<td align='center'><font color='green' size='5'>LIG");
else
client.println("<td align='center'><font color='#CFCFCF' size='5'>DES");

client.println("</tr>");

client.println("<tr bgColor='#222222'>");
client.println("<td bgcolor='#222222'><font face='Verdana' color='#CFCFCF' size='2'>Quarto<br></font></td>");
client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r5on value='Acender'></form></td>");
client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r5off value='Apagar'></form></td>");
if (digitalRead(rele5) == 1)
client.println("<td align='center'><font color='green' size='5'>LIG");
else
client.println("<td align='center'><font color='#CFCFCF' size='5'>DES");

client.println("</tr>");
client.println("<tr bgColor='#222222'>");
client.println("<td bgcolor='#222222'><font face='Verdana' color='#CFCFCF' size='2'>Banheiro Suite<br></font></td>");
client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r6on value='Acender'></form></td>");
client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r6off value='Apagar'></form></td>");
if (digitalRead(rele6) == 1)
client.println("<td align='center'><font color='green' size='5'>LIG");
else
client.println("<td align='center'><font color='#CFCFCF' size='5'>DES");

client.println("</tr>");
client.println("<tr bgColor='#222222'>");
client.println("<td bgcolor='#222222'><font face='Verdana' color='#CFCFCF' size='2'>Escritorio<br></font></td>");
client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r7on value='Acender'></form></td>");
client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r7off value='Apagar'></form></td>");
if (digitalRead(rele7) == 1)
client.println("<td align='center'><font color='green' size='5'>LIG");
else
client.println("<td align='center'><font color='#CFCFCF' size='5'>DES");

client.println("</tr>");
client.println("<tr bgColor='#222222'>");
client.println("<td bgcolor='#222222'><font face='Verdana' color='#CFCFCF' size='2'>Banheiro<br></font></td>");
client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r8on value='Acender'></form></td>");
client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r8off value='Apagar'></form></td>");
if (digitalRead(rele8) == 1)
client.println("<td align='center'><font color='green' size='5'>LIG");
else
client.println("<td align='center'><font color='#CFCFCF' size='5'>DES");

client.println("</tr>");
client.println("<tr bgColor='#222222'>");
client.println("<td bgcolor='#222222'><font face='Verdana' color='#CFCFCF' size='2'>Portão Social<br></font></td>");
client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r9on value='Acender'></form></td>");
client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r9off value='Apagar'></form></td>");
if (digitalRead(rele9) == 1)
client.println("<td align='center'><font color='green' size='5'>LIG");
else
client.println("<td align='center'><font color='#CFCFCF' size='5'>DES");

client.println("</tr>");
client.println("<tr bgColor='#222222'>");
client.println("<td bgcolor='#222222'><font face='Verdana' color='#CFCFCF' size='2'>Portão Garagem<br></font></td>");
client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r10on value='Acender'></form></td>");
client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=r10off value='Apagar'></form></td>");
if (digitalRead(rele10) == 1)
client.println("<td align='center'><font color='green' size='5'>LIG");
else
client.println("<td align='center'><font color='#CFCFCF' size='5'>DES");

client.println("</tr>");
client.println("</tr>");
client.println("</table>");

client.println("<br>");
if (FlagAlarme == 0)
client.println("<form method=get><input type=submit name=all value='Ativar Alarme'></form>");
else
client.println("<form method=get><input type=submit name=all value='Desativar Alarme'></form>");
client.println("<br>");

client.println("<form method=get><input name='ip' size='17' maxlength=17>");
client.println("<form method=get><input value='Salvar' type=submit></form>");

client.println("</body></html>");


client.stop();
}
}
}
}
}

void inicia_buzzer()
{
tone(buzzer,1500);
delay(900);
noTone(buzzer);
delay(100);
tone(buzzer,1500);
delay(900);
noTone(buzzer);
delay(100);
tone(buzzer,1500);
delay(900);
noTone(buzzer);
delay(100);
tone(buzzer,1500);
delay(900);
noTone(buzzer);
delay(100);
tone(buzzer,1500);
delay(900);
noTone(buzzer);
delay(100);
}
void inicia_lcd()
{
lcd.begin(16,2);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("INSIRA SENHA");
}

Exibições: 1411

Responder esta

Respostas a este tópico

Mudar porta nao resolve. Uma varredura no ip mostraria as portas abertas.

Precisa mesmo é mudar o ip externo e depois inserir um controle por senha para acessar

Imhugo vc manja de html? Como faria pra colocar um acesso com login nesse sketch?

Eu nunca tentei montar um mecanismo de seguranca via senha diretamente no sketch. Faço isso atraves do servidor linux rodando apache e php.

Assim, o roteador redireciona a requisição de conexão externa pro linux. O script php no linux pede a senha. Se a senha for correta, aí o linux reencaminha a conexão pro arduino.

Explicando melhor: do jeito que está sendo feito aí pelo camarada, está assim:

Alguém na net >> roteador >> arduino

Com linux ficaria: Alguém na net >> roteador >> linux >> arduino

Mas se não tiver condição de montar essa camada intermediária de segurança usando linux, eu talvez seguiria a estratégia a seguir:

 a  conexáo não poderia ser simplesmente através de IP:porta. Teria que ser IP:porta/?usuario=moises&senha=123456

Nesse caso, o sketch primeiro verificaria se usuario e senha informados estão dentro da lista de usuários e senhas pré-definidos. Caso afirmativo, aí sim a  página html contendo os comandos de controle seria exibida. Caso negativo, exibe pagina em branco, ou mensagem de erro, ou algo do género.

A vantagem de se colocar linux pra fazer a segurança (veja bem, linux é apenas uma das possibilidades, mas poderia ser um script asp rodando no iis do windows) é que vc poderia programaticamente evitar tentativas sucessivas de algum ofensor, como por exemplo aumentando o tempo de espera a cada tentativa, ou mesmo impondo um captcha para evitar ataques via scripts, criar  uma lista negra de ips ofensores para que eles nunca mais fossem capazes sequer de ver a tela de login, enfim com um servidor linux ou windows executando scripts de segurança, vc inventa o que quiser, sua imaginação seria o limite.

Sem linux, ou seja, com arduino ligado diretamente no roteador, um ofensor poderia tentar acesso através de script programado para força bruta ou dicionário. Logicamente temos que pensar no grau de motivação do ofensor em querer acessar, mas ñao devemos subestimar. Quem tem acesso a logs de segurança de redes sabe muito bem que volta e meia tentativas de invasão ocorrem frequentemente, principalmente de chineses, russos e iranianos

vou sugerir que compre um switch e configure o redirecionamento da porta 80 do modem da sua internet , enfrentei este problema para tentar cascatear do modem para um roteador e do roteador para o servidor com microcontrolador , a solução foi comprar um switch dai eu liguei do modem no switch , apos isso eu liguei meu servidor tbm no switch , para ele pegar a rede direto do modem , liguei o roteador no switch para as demais maquinas , ai eu configurei o ip do server conforme a faixa  de ip do modem , redirecionei do modem para o server e acessando meu ip acompanhado de :8080 vualá  , consegui conectar com meu server de qualquer parte.

Retirei o meu comentário que continha o numero do teu ip externo.

Se seu ip é estático, precisa ligar na empresa que te fornece o serviço de internet e peça pra mudar.

Se vc mudar teu ip, o risco é só um pouco menor, porque ninguém vai saber que aquele novo ip é teu. Mas uma hora conseguirão chegar ao teu ip e testar conexões nas portas abertas da sua rede.

É importante vc perceber que disponibilizar um controle de automação da sua casa na internet, mesmo que em porta diferente da porta 80, é um risco grande.

Se vc realmente quiser deixar o controle acessível na internet, precisa estar ciente do risco, e necessariamente deve incluir uma camada de segurança. Já a eficiência dessa segurança dependerá do teu empenho/motivação.

Teu caso é semelhante a aquelas pessoas que compram cameras IP, instalam na residência e configuram o roteador pra permitir acesso remoto. Acham que só elas, donas da camera, irão conseguir acessar a camera. Esquecem que se tiver na net, qualquer um poderia acessar. 

muito grato.amigo.

vc ajuda miguel colocar seenha nesse code

tem como eu aumentar segurança do acesso via internet

fazer eu mesmo, não gosto de fazer não. Posso até te dar dicas indicando qual caminho seguir, mas quem vai ter que fazer é vc mesmo.

Ali numa das minhas postagens eu escrevi sobre algumas possibilidades, mas pra implementar isso teria que dedicar algumas horas/dias/semanas... encare como um desafio pra vc e manda brasa

isso que eu quero

quero e apreder

Uma maneira rapida de deixar mais seguro seria desabilitando o acesso remoto pelo ip e ativando um acesso pelo teamviewer
Mas pode deixar q eu faco um acesso com logim pra vc

isso é verdade.... o teamviewer  é uma opção  sim. Inclusive funciona em smartphone com android e considero bem seguro.

Lógico que esse "seguro" poderia gerar infinitos debates, mas acho que todos concordam que dá pra dormir sem ter que ficar pensando nessa questão.

kd endereço te enviar ddr2 2gb

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço