在沒有curl和wget情況下發送HTTP請求
Bash 的 /dev/tcp 功能為用戶提供了一個直接的方式,通過 TCP 套接字發送 HTTP 請求,這一功能可以在沒有額外工具的情況下執行簡單的網絡操作。
發送HTTP GET請求
#!/bin/bash # 打開一個 TCP 連接到 baidu.com 的 80 端口,并將其分配給文件描述符 3 exec 3<>/dev/tcp/baidu.com/80 # 向文件描述符 3 發送 HTTP 請求 echo -ne "GET / HTTP/1.1\r\nHost: baidu.com\r\nConnection: close\r\n\r\n" >&3 # 從文件描述符 3 讀取響應并輸出到標準輸出 cat <&3 # 關閉文件描述符 3 exec 3<&-
腳本模板
#!/bin/bash
exec 3<>/dev/tcp/baidu.com/80
lines=(
'GET / HTTP/1.1'
'Host: baidu.com'
'Connection: close'
''
)
printf '%s\r\n' "${lines[@]}" >&3
while read -r data <&3; do
echo "got server data: $data"
done
exec 3>&-
作者:Standby — 一生熱愛名山大川、草原沙漠,還有我們小郭寶貝!
出處:http://www.rzrgm.cn/standby/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
出處:http://www.rzrgm.cn/standby/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。

浙公網安備 33010602011771號