lqh 发表于 2016-4-19 10:48:57

突破外网限制的最简单办法

    不用注册和联接乐联网之类的网站,就可以远程控制家里的电器!方法简单,效果也还可以。办法是用Arduino+W5100联接一个论坛,自己在论坛里发表或修改某个关键词,即可控制家里的电器,比如,我在http://www.geek-workshop.com/thread-25592-1-1.html就有一段“做一个小试验Si?a”,只要我将“Si?a”修改成“Si?b”就可以打开家里的热水器了,反之热水器将关闭。闲话少说,程序如下:

      
#include <SPI.h>
#include <Ethernet.h>


byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

char server[] = "www.geek-workshop.com";
char C;
int a=2;
IPAddress ip(192, 168, 0, 177);


EthernetClient client;

void setup() {

Serial.begin(9600);
while (!Serial) {
    ;
}
   pinMode(a,OUTPUT);
    digitalWrite(a,HIGH);

if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");   
    Ethernet.begin(mac, ip);
}

delay(1000);
Serial.println("connecting...");


}

void loop()
{

if (client.connect(server, 80)) {
    Serial.println("connected");   
    client.println("GET /forum.php?mod=viewthread&tid=25592&page=1&extra=#pid119047 HTTP/1.1");
    client.println("Host: www.geek-workshop.com");
    client.println("Connection: close");
    client.println();
}
else {

    Serial.println("connection failed");
}

if(client.connected()) {
   Serial.println("OK");
   if (client.find("Si?")){
      Serial.println("OK2");
      C=client.read();
      Serial.print(C);
      
   }      
}
    client.stop();
    client.flush();
   if(C=='b'){ digitalWrite(a,LOW);}//控制电器
      else{digitalWrite(a,HIGH);}
    delay(20000); //决定其查询的时间,可以适当修改的长一些。

}

主要缺点有二点:一是在时间上有一些延迟,比如,以上程序,每20秒查询一次,也就是说,你修改页面下达命令后,等到Arduino执行,一般都在20秒以后。二是执行情况不能反馈,但自己玩玩还是可以的。

cjnt007 发表于 2016-4-19 11:12:53

如果所发的指令不在第一页,那还要知道指令所在的楼层吧,读取指令不是很方便,也不安全

tempchar 发表于 2016-4-19 11:21:46

连自己搭服务器都省了,楼主创意不错

林定祥 发表于 2016-4-19 12:20:46

借鸡生蛋,主意不错!

kwang09 发表于 2016-4-19 14:22:25

高材生,方法可以借鉴,很帅!

kevinzhang 发表于 2016-4-19 14:37:11

挺有意思的主意。

Super169 发表于 2016-4-20 13:19:39

本帖最后由 Super169 于 2016-4-20 13:21 编辑

用 arduino + W5100 做 web server, 再在 router 設定 port 80 直接轉到 W5100 去.
就不怕會有 delay 了,但如果在有 proxy 的環境下就不行了.

ridxqqqq 发表于 2016-4-21 07:25:17

这虽然是个好办法 但你就不怕别人的留言里有你需要的关键字吗

lqh 发表于 2016-4-21 08:23:35

本帖最后由 lqh 于 2016-4-21 09:00 编辑

ridxqqqq 发表于 2016-4-21 07:25 static/image/common/back.gif
这虽然是个好办法 但你就不怕别人的留言里有你需要的关键字吗

所以要选好你的关键词。另外,如果别人的留言里也有你设定的关键词,但是是在你的关键词之后, 那么他对你的程序没有影响。因为程序每次查询只查第一个关键词,也就是你设定的那个。

msold5 发表于 2016-4-23 00:49:02

创意真不错,赞一个

GDHack 发表于 2016-4-23 13:43:58

有这功夫去解释HTML,为什么不使用SMTP和POP3或者IMAP协议?

GDHack 发表于 2016-4-23 13:45:45

话说,当年我做木马控制别人电脑的时候,也用过类似的方法:lol:lol:lol

甲子如风 发表于 2016-4-24 00:01:37

学习了 很不错的想法

firewise 发表于 2016-4-24 09:18:30

拓展玩法,看看有没有实用价值。。。。

迷你强 发表于 2016-4-24 09:58:57

:'(你们这么干真的好么?
页: [1] 2
查看完整版本: 突破外网限制的最简单办法