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

Sockets 将ESP8266连接到虚拟IP地址/网站,sockets,tcp,arduino,shared-hosting,esp8266,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连接到托管在虚拟地址共享服务器上的

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

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

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

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

如何让我的ESP8266连接到托管在虚拟地址共享服务器上的特定站点

参考资料我读过:


要连接到虚拟主机,您可以使用+CIPSTART正常连接到虚拟主机的IP和端口

AT+CIPSTART="TCP","xxx.xxx.xxx.xxx",80\r\n
重要的部分是当您使用
AT+CIPSEND
发送HTTP请求时
为了让web服务器区分不同的虚拟主机,您需要在请求中添加一个

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


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

您应该能够使用域名,因为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

“虚拟IP”是指随时间变化的动态IP,还是指存在单个静态IP但在不同域上承载多个网站的虚拟主机?具有单个静态IP且承载多个域的虚拟主机。我不知道这是如何连接到ESP8266的。我已经尝试将域名与AT+CIPSTART一起使用,http响应是从共享IP地址提供的通用响应,而不是来自特定域的响应。@DevonBernard我编辑了答案以使其更清晰。