在服务器模式下启动 GSM 调制解调器时如何获取 public IP 地址?
How do I get the public IP address when starting a GSM modem in server mode?
我有一个 SIM800C GSM 模块,我想用它来制作服务器。我真的很困惑知道 public IP 地址。为了让人们连接到任何服务器,他们需要正确的 public IP 地址和正确的端口,当然还有正确的协议(TCP、HTTP 等..)。
已有获取本地IP地址的命令(AT+CIFSR
);如果我创建了一个服务器并且想让我的朋友连接到它,我需要 public IP 地址。我如何获得它?
我在互联网上搜索,但一无所获。
AT+CIFSR
(以及标准命令 AT+CGPADDR
)returns 一旦您激活 PDP 上下文,您的 IP。不幸的是,它是否为 public 取决于您的运营商。事实上,由于需要面对IPv4地址耗尽,他们经常执行网络地址转换(NAT),这实际上会提供一个本地IP到您的设备。
因此,您的设备将无法进行非 device-initiated 的通信,并且您根本无法创建 public 服务器。
因此,这不是 一个 public IP 相对于本地 IP :这只是您从网络获得的 IP。如果不做NAT,那么你用AT+CIFSR
得到的IP就是public。
设计work-around
通常 NATted IP 限制面临设计技巧
- A wake-up SMS 被发送到托管服务器的设备。 SMS 可以是 基本 短信(仅包含与应用程序相关的数据的文本)或特殊的 SMS 类型(Wap 推送通知)。
- 一旦收到短信,设备就会启动服务器并向远程对等方发送一些数据
- 这将导致设备发起通信,因此从网络端将打开 NAT,设备将暂时 public。
- 经过一定的不活动时间(取决于运营商)后,NAT 将再次关闭
“商业”解决方案
如果设计解决方案不可行,还有另一种选择,涉及购买专门用于 M2M 和物联网应用的特殊(且更昂贵...)SIM:
- SIM 将始终获得 public IP
- SIM 将始终获得 public 固定 IP
我有一个 SIM800C GSM 模块,我想用它来制作服务器。我真的很困惑知道 public IP 地址。为了让人们连接到任何服务器,他们需要正确的 public IP 地址和正确的端口,当然还有正确的协议(TCP、HTTP 等..)。
已有获取本地IP地址的命令(AT+CIFSR
);如果我创建了一个服务器并且想让我的朋友连接到它,我需要 public IP 地址。我如何获得它?
我在互联网上搜索,但一无所获。
AT+CIFSR
(以及标准命令 AT+CGPADDR
)returns 一旦您激活 PDP 上下文,您的 IP。不幸的是,它是否为 public 取决于您的运营商。事实上,由于需要面对IPv4地址耗尽,他们经常执行网络地址转换(NAT),这实际上会提供一个本地IP到您的设备。
因此,您的设备将无法进行非 device-initiated 的通信,并且您根本无法创建 public 服务器。
因此,这不是 一个 public IP 相对于本地 IP :这只是您从网络获得的 IP。如果不做NAT,那么你用AT+CIFSR
得到的IP就是public。
设计work-around
通常 NATted IP 限制面临设计技巧
- A wake-up SMS 被发送到托管服务器的设备。 SMS 可以是 基本 短信(仅包含与应用程序相关的数据的文本)或特殊的 SMS 类型(Wap 推送通知)。
- 一旦收到短信,设备就会启动服务器并向远程对等方发送一些数据
- 这将导致设备发起通信,因此从网络端将打开 NAT,设备将暂时 public。
- 经过一定的不活动时间(取决于运营商)后,NAT 将再次关闭
“商业”解决方案
如果设计解决方案不可行,还有另一种选择,涉及购买专门用于 M2M 和物联网应用的特殊(且更昂贵...)SIM:
- SIM 将始终获得 public IP
- SIM 将始终获得 public 固定 IP