用awk命令访问网络

只适合一些特殊的场景,比如在无curl wget的docker容器中验证访问网络。

curl镜像

docker实现

docker run --rm -it curlimages/curl -- https://ceshiren.com/

k8s实现

kubectl run --rm -it --image=curlimages/curl -- curl https://ceshiren.com/

命令

在一个没有curl的容器内部实现访问网络。只能用于验证内部的http访问,不支持https。

echo "http://www.baidu.com:80/demo.html" | gawk -F'[:/]' '{host = $4;port = $5 == "" ? 80 : $5;path = "";for (i = 6; i <= NF; i++) path = path "/" $i;remote="/inet/tcp/0/" host  "/" port;printf("GET %s HTTP/1.0\r\nHost: %s\r\n\r\n", path, host) |& remote ;while (( remote  |& getline) > 0) print $0}'