搜索
bottom↓
回复: 14

uip 局域网内互联正常,怎么连接公网呢?

[复制链接]

出0入0汤圆

发表于 2013-3-15 21:46:42 | 显示全部楼层 |阅读模式


uip 局域网内互联正常,但是让单片机主动连接外网,根本抓不到数据,但是经过路由映射内外ip后,访问路由器公网ip可以连接到单片机,访问正常

就是  比如  :单片机 ENC28J60 内网 192.168.1.150    路由器公网 182.56.78.123  (设置80端口映射内网 192.168.1.150)


我用电脑(内网 192.168.1.170)访问
192.168.1.150  能打开单片机上的页面

我用电脑(内网 192.168.1.170)访问
182.56.78.123 也能正常访问

但是:如果设置让单片机连接外网 主机  根本无法建立连接 或者抓包数据 没有,也就是根本没发送 为什么呢?怎么连接外网呢?求解 啊大神们

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2013-3-15 21:46:59 | 显示全部楼层
能啊,现在我试验了一下   
设备 192.168.1.160    我的电脑web服务 192.168.1.150   
路由器 192.168.1.1 (80端口映射到150)  公网ip183.67.59.123

设备访问:183.67.59.123 能连接上我的电脑web服务器 ,web服务器也能返回正确信息。

但是,ip改成公网我租用的服务器  不行,


U8 code sendstring[292]=(
"GET /index.php HTTP/1.1\r\n"
"Host: www.这个我的域名.net\r\n"
"Connection: keep-alive\r\n"
"Accept: */*\r\n"
"Accept-Language: zh-cn\r\n"
"User-Agent: Mozilla/4.0\r\n"
"Accept-Encoding: gzip, deflate\r\n"
"Content-Type: application/x-www-form-urlencoded\r\n"
"\r\n\r\n");

出0入0汤圆

 楼主| 发表于 2013-3-15 21:48:40 | 显示全部楼层
有人说 虚拟主机(一台服务器有很多站)是根据 Host 来区别返回那个站点的页面的 我的host也是正确的 我跟浏览器比较了啊

出0入0汤圆

发表于 2013-3-15 22:53:07 | 显示全部楼层
用花生壳,把一个端口映射到内网的IP端口上,外网就可以通过访问外网IP这个端口来访问内网了,

出0入0汤圆

发表于 2013-3-16 10:03:53 | 显示全部楼层
单片机访问外网主机...你发的是什么包tcp还是udp?  在内网单片机能连接内网主机吗?

出0入0汤圆

 楼主| 发表于 2013-3-16 11:57:36 | 显示全部楼层
nydns 发表于 2013-3-16 10:03
单片机访问外网主机...你发的是什么包tcp还是udp?  在内网单片机能连接内网主机吗?
...

能的 网主机配置为web服务器,正常访问  web服务器放到上级路由器,这级路由器下的设备也能访问了

第二种试验:本地一个路由器,一个公网ip。设备访问公网ip(80端口映射到本地主机)一样访问正常。

外网 买的主机就不行   我的请求字没有问题啊

出0入0汤圆

 楼主| 发表于 2013-3-24 23:58:32 | 显示全部楼层
wmm20031015 发表于 2013-3-15 22:53
用花生壳,把一个端口映射到内网的IP端口上,外网就可以通过访问外网IP这个端口来访问内网了, ...

这个能实现,我是想单片机访问外网的服务器,获取信息。而不是在外网访问单片机

出0入0汤圆

发表于 2013-3-25 10:24:09 | 显示全部楼层
电脑上的web服务你怎么弄的  
不是一般把单片机作为web服务器  然后外网访问么

出0入0汤圆

发表于 2013-3-25 12:08:58 | 显示全部楼层
可以实现单片机(STM32F103XX+ENC28j60+uIP1.0)访问外网,寒假里曾经实验成功过。
下面是几点建议:
1.内网和外网是有一些区别的,内网是直接IP访问,外网如果是域名的话要使用DNS服务,也就是UDP协议。建议楼主先把DNS服务调通。
2.你的域名指向虚拟主机,有可能是空间提供商方面问题,可以试试访问其他网址(如http://www.ichanging.org/我当时就是试的这个)而不是你自己的网址。
3.你发送的GET头有问题,可适当删减“Accept-Encoding:”和“Content-Type:”标签,特别是前者,一点要去掉,否则返回的有可能是gzip压缩后的乱码。

可参考:http://www.ichanging.org/uip-webclient.html

出0入0汤圆

 楼主| 发表于 2013-4-13 23:50:26 | 显示全部楼层
gerpayt 发表于 2013-3-25 12:08
可以实现单片机(STM32F103XX+ENC28j60+uIP1.0)访问外网,寒假里曾经实验成功过。
下面是几点建议:
1.内 ...



通过IP可以访问百度服务器了,就是访问虚拟主机有问题,http头都是跟浏览器访问的时候抓取的时候一样的,不知道为什么。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-4-15 09:17:19 | 显示全部楼层
l1234564555 发表于 2013-4-13 23:50
通过IP可以访问百度服务器了,就是访问虚拟主机有问题,http头都是跟浏览器访问的时候抓取的时候一样的 ...

建议楼主先把DNS Client调通,就是可以通过域名解析出他的IP地址。
然后再根据IP地址通信。
虚拟主机一般是多个主机共用一个IP,直接通过IP是访问不了的。

出0入0汤圆

发表于 2013-4-15 10:40:22 | 显示全部楼层
很多地方的运营商是封杀了家庭网络用户的80端口的,至于原因,你懂的。

出0入0汤圆

发表于 2013-4-22 17:39:13 | 显示全部楼层
最近正在搞 这个,留个脚印

出0入0汤圆

发表于 2013-10-18 15:24:09 | 显示全部楼层
mark


                  

出0入0汤圆

发表于 2014-8-28 15:11:51 | 显示全部楼层
楼主大哥,我移植uip-1.0协议栈可以在局域网实现一个web服务器,客户机可以向我的嵌入式设备请求到动态网页。现在我想将我的嵌入式设备接入公网,因为我的嵌入式设备接入公网的时候不能有一个固定的IP,所以我移植花生壳的DDNS协议实现域名到动态ip的解析。但是现在出了问题,我用网线将板子连到路由器上,并不识别,就是说我的嵌入式设备并不是一个网络设备,路由器并没有给它分配一个IP。我该怎么解决这个问题呢?网络技术方面是菜鸟,求指教!!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 10:31

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表