爲什麼這項工作:使用的/ dev/TCP,而不是wget的
exec 3<>/dev/tcp/www.google.com/80 echo -e "GET/HTTP/1.1\n\n">&3 cat <&3
而這種失敗:
echo -e "GET/HTTP/1.1\n\n" > /dev/tcp/www.google.com/80 cat </dev/tcp/www.google.com/80
有沒有辦法做到在一個線W/O使用wget ,捲曲,還是其他一些圖書館?
爲什麼這項工作:使用的/ dev/TCP,而不是wget的
exec 3<>/dev/tcp/www.google.com/80 echo -e "GET/HTTP/1.1\n\n">&3 cat <&3
而這種失敗:
echo -e "GET/HTTP/1.1\n\n" > /dev/tcp/www.google.com/80 cat </dev/tcp/www.google.com/80
有沒有辦法做到在一個線W/O使用wget ,捲曲,還是其他一些圖書館?
第二段代碼失敗,因爲它打開兩個單獨的TCP套接字。 echo
連接到www.google.com
並寫入HTTP請求;然後第二行打開另一個連接並嘗試從該套接字讀取。因爲Google正在等待HTTP請求被髮送,所以第二個套接字會被阻塞。
有關如何讓它在一條線上工作? – User1 2010-05-05 14:07:28
我嘗試了20分鐘,無法做到。嘿。如果將這三條語句合併爲一行,則可以將這三條語句合併爲&&:'exec ... && echo ... && cat ...' – 2010-05-05 17:38:09
不是我的專業領域,但我認爲第二個樣本將打開第二個連接,而第一個樣本保持對同一連接的打開句柄。因此,任何涉及只打開一個連接的解決方案都應該可行
請注意,使用'/ dev/tcp'方法而不是wget或curl意味着您不會獲得wget或curl的所有功能 - 例如自動處理302重定向,代理服務器支持等。 – 2010-05-04 23:36:07