将ESP8266连接到虚拟IP地址/网站

时间:2015-10-01 08:04:39

标签: sockets tcp arduino shared-hosting esp8266

我正在使用ESP8266 wifi模块从我的微控制器在网络上发送/接收数据包。特别是我一直在使用

AT+CIPSTART="TCP",'xxx.xxx.xxx.xxx,80\r\n

命令选择我要向哪个端点发送数据包。它目前适用于静态IP(或具有静态IP的域);但是我还没有找到一个资源说明这可以用于虚拟IP(或具有虚拟IP的域)。

我在共享服务器上托管了网站,但每次执行此CIPSTART命令(使用IP或域)时,响应都是通用共享服务器IP地址页面。

如何让我的ESP8266连接到我的具有虚拟地址的共享服务器上的特定站点?

资源我读过:

2 个答案:

答案 0 :(得分:1)

您应该可以使用域名,因为DNS会自动为您解析IP。注意长度值。您应该在GET字符串的实际长度上添加至少4个字符,以便考虑回车符/新换行符:

AT+CIPSTART="TCP","api.thingspeak.com",80   
AT+CIPSEND=80
GET http://api.thingspeak.com/update?key=PBG7CKSZU6FU3M4C&field1=5 HTTP/1.0

答案 1 :(得分:0)

要连接到虚拟主机,请使用AT+CIPSTART正常连接到其IP和端口。

AT+CIPSTART="TCP","xxx.xxx.xxx.xxx",80\r\n

重要的部分是当您使用AT+CIPSEND发送HTTP请求时 要使Web服务器区分不同的虚拟主机,您需要在请求中添加Host HTTP header

GET /request.php?key=value HTTP/1.1\r\n
Host: www.example.com\r\n
\r\n

这样,Web服务器应该从主机提供商返回正确的主机而不是默认主机。