0

我有一个SIM800C GSM 模块,我想用它来制作服务器。我对知道公共 IP 地址感到非常困惑。为了使人们能够连接到任何服务器,他们需要正确的公共 IP 地址和正确的端口,当然还有正确的协议(TCP、HTTP 等..)。

已经有获取本地IP地址的命令(AT+CIFSR);如果我创建了一个服务器并且我想让我的朋友连接到它,我需要公共 IP 地址。我如何得到它?

我在互联网上搜索但一无所获。

4

1 回答 1

2

AT+CIFSR(以及标准命令AT+CGPADDR)在您激活 PDP 上下文后立即返回您的 IP。不幸的是,它是否公开取决于您的运营商。事实上,由于需要面对IPv4 地址耗尽,他们经常执行网络地址转换(NAT),这实际上会为您的设备提供本地 IP。

因此,非设备发起的通信将无法访问您的设备,并且您根本无法创建公共服务器。

因此,这不是与本地 IP 相对的公共 IP:只有您从网络获得的 IP。如果不执行 NAT,那么您获得的 IPAT+CIFSR将是公共 IP。


设计变通方案

通常,NATted IP 限制面临设计技巧

  1. 唤醒SMS 发送到托管服务器的设备。SMS 可以是基本的(仅包含与应用程序相关的数据的文本)或特殊的 SMS 类型(Wap 推送通知)。
  2. 设备收到 SMS 后,立即启动服务器并向远程对等方发送一些数据
  3. 这将导致设备发起通信,因此从网络侧将打开 NAT 并且设备将暂时公开。
  4. 在一定的不活动时间(取决于运营商)之后,NAT 将再次关闭

“商业”解决方案

如果设计解决方案不可行,还有另一种选择,即购买专门用于 M2M 和 IOT 应用的特殊(并且更昂贵......)SIM:

  1. 将始终获得公共 IP 的 SIM 卡
  2. 将始终获得公共固定IP的 SIM 卡
于 2020-08-09T18:21:07.523 回答