l1234564555 发表于 2013-3-15 21:46:42

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



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 也能正常访问

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

l1234564555 发表于 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=(
"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");

l1234564555 发表于 2013-3-15 21:48:40

有人说 虚拟主机(一台服务器有很多站)是根据 Host 来区别返回那个站点的页面的 我的host也是正确的 我跟浏览器比较了啊

wmm20031015 发表于 2013-3-15 22:53:07

用花生壳,把一个端口映射到内网的IP端口上,外网就可以通过访问外网IP这个端口来访问内网了,

nydns 发表于 2013-3-16 10:03:53

单片机访问外网主机...你发的是什么包tcp还是udp?在内网单片机能连接内网主机吗?

l1234564555 发表于 2013-3-16 11:57:36

nydns 发表于 2013-3-16 10:03 static/image/common/back.gif
单片机访问外网主机...你发的是什么包tcp还是udp?在内网单片机能连接内网主机吗?
...

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

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

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

l1234564555 发表于 2013-3-24 23:58:32

wmm20031015 发表于 2013-3-15 22:53 static/image/common/back.gif
用花生壳,把一个端口映射到内网的IP端口上,外网就可以通过访问外网IP这个端口来访问内网了, ...

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

number007cool 发表于 2013-3-25 10:24:09

电脑上的web服务你怎么弄的
不是一般把单片机作为web服务器然后外网访问么

gerpayt 发表于 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

l1234564555 发表于 2013-4-13 23:50:26

gerpayt 发表于 2013-3-25 12:08 static/image/common/back.gif
可以实现单片机(STM32F103XX+ENC28j60+uIP1.0)访问外网,寒假里曾经实验成功过。
下面是几点建议:
1.内 ...



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

gerpayt 发表于 2013-4-15 09:17:19

l1234564555 发表于 2013-4-13 23:50 static/image/common/back.gif
通过IP可以访问百度服务器了,就是访问虚拟主机有问题,http头都是跟浏览器访问的时候抓取的时候一样的 ...

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

qllaoda1 发表于 2013-4-15 10:40:22

很多地方的运营商是封杀了家庭网络用户的80端口的,至于原因,你懂的。

dgxll 发表于 2013-4-22 17:39:13

最近正在搞 这个,留个脚印

chengying 发表于 2013-10-18 15:24:09

mark


                  

silence2455 发表于 2014-8-28 15:11:51

楼主大哥,我移植uip-1.0协议栈可以在局域网实现一个web服务器,客户机可以向我的嵌入式设备请求到动态网页。现在我想将我的嵌入式设备接入公网,因为我的嵌入式设备接入公网的时候不能有一个固定的IP,所以我移植花生壳的DDNS协议实现域名到动态ip的解析。但是现在出了问题,我用网线将板子连到路由器上,并不识别,就是说我的嵌入式设备并不是一个网络设备,路由器并没有给它分配一个IP。我该怎么解决这个问题呢?网络技术方面是菜鸟,求指教!!
页: [1]
查看完整版本: uip 局域网内互联正常,怎么连接公网呢?