SIM868——GPRS调试之公网IP端口无法映射的解决方法

版权声明:本文为博主原创文章,未经博主允许不得转载,联系邮箱[email protected] https://blog.csdn.net/w464960660/article/details/83416349

【基于公网IP映射端口】:我们做SIM868模块调试GPRS数据传输功能的时候,往往会利用公网IP地址进行数据传输,大致步骤是:
1)先查询公网IP(百度查IP或者通过路由器查询WAN口IP);
在这里插入图片描述
2)再查询自己电脑内网IP(方法很多);
3)登录路由器控制界面,设置虚拟服务器,写入内网IP及端口号;
在这里插入图片描述
4)利用TCP/UDP Socket工具创建服务器,监听对应的端口,这时就可以进行GPRS模块和对应本地电脑的数据传输了;
在这里插入图片描述
5)GPRS模块端串口连接电脑,利用串口调试助手进行的AT命令控制(无括号备注,均需勾选“发送新行”):
AT+CSQ //查询网络信号质量
AT+CREG? //查询网络注册情况
AT+CGATT? //查询模块是否附着 GPRS 网络
AT+CSTT=“CMNET” //根据实际网络设置 APN,这里为移动
AT+CIICR //激活移动场景
AT+CIFSR //获得本地 IP 地址
AT+CIPSTART=“TCP”,“113.0.80.201”,3389 //建立 TCP/IP 连接 // 测试时公网动态 IP:113.0.80.201
AT+CIPSEND(出现>后,去掉 “发送新行”,再写要发送的数据)
1A(16进制发送)
以上便可以实现GPRS的数据传输,在串口调试助手与TCP/UDP Socket 工具间可看到数据传输。

【问题】:以上是在百度查到的公网IP及路由器查到WAN IP一致的情况下实现的,但是会存在查询结果不一致的情况(现在外网地址不够用,所以很多运营商都将用户设为内网),如移动、铁通等用户,这种情况下无法用上述设置路由器 虚拟服务器的方法实现端口映射,这时候该怎么破?

【解决办法】:利用花生壳的内网穿透功能实现(我绝对不是给它做广告的,只是确实好用~ :) )
下载花生壳软件,并注册,在内网穿透中添加映射:
在这里插入图片描述

这时候记住外网访问地址及内网主机地址,接着重复上述的步骤5),只是把:
AT+CIPSTART=“TCP”,“113.0.80.201”,3389 IP地址修改为花生壳中内网穿透的“外网地址”,端口号设为同样的就OK了;
在这里插入图片描述

【注意】:
1、这里的“外网地址”是在注册花生壳时免费提供给你的域名;
2、使用花生壳内网穿透的好处不仅是解决公网端口无法映射的问题,还解决了公网IP变化的问题(动态IP分配导致的变化,对应用者而言,公网IP变化,原来烧进MCU中的程序就要重新改变,否则无法使用);

猜你喜欢

转载自blog.csdn.net/w464960660/article/details/83416349