2015-11-02 73 views
2

我试图连接到使用的方法是这样这样网站:连接到网站,而不卷曲或bash

echo -e "GET http://google.com HTTP/1.0\n\n" | nc google.com 80 > /dev/null 2>&1 

我见过的人平谷歌与上面的代码。 我可以使用curlwget去该网站,但我不想使用这些方法,因为我使用的微控制器不支持curlwget

有人可以解释上述代码是如何工作的?

+0

你知道什么'NC “效用是?你看过吗?你知道'HTTP'协议是如何工作的吗?你看过吗? –

回答

3
  1. nc打开上google.com
  2. 到端口80的连接。echo语句是一个有效的GET请求,使用HTTP/1.0协议
  3. > /dev/null 2>&1重定向既stdoutstderr,不产生输出
  4. 你可以通过退出代码告知成功,在$?(值为0表示成功)

你可以写这个短:

echo -e "GET /\n\n" | nc google.com 80 

,更便于携带(不echo -e):

printf "GET /\n\n" | nc google.com 80 

或多个便携但仍与echo

{ echo GET /; echo; } | nc google.com 80 
+0

如果有像“example.com:9000/link”这样的地址,我会把/ link之后放在什么地方?所以例如它看起来像 echo -e“GET/\ n \ n”| nc google.com 80/link? –

+0

'printf“GET/link \ n \ n”| nc example.com 9000' – janos

+0

太棒了!谢谢 –