我的主机允许有限访问SSH和Linux命令.但是,我不能用Wget信不信由你.
我希望从另一台服务器下载文件(.flv).我可以尝试另一个命令吗?
如果没有,我可能会使用Python,Perl或PHP(最喜欢的)来实现文件下载.可能吗?
echo -ne "GET /path/to/file HTTP/1.0\r\nHost: www.somesite.com\r\n\r\n" | nc www.somesite.com 80 | perl -pe 'BEGIN { while (<>) { last if $_ eq "\r\n"; } }'
编译的Bash--enable-net-redirections
非常强大.(Zsh有类似的功能.)哎呀,我甚至会在这里抛出HTTP Basic Auth.
当然,它不是一个非常好的HTTP/1.1客户端; 例如,它不支持分块编码.但这在实践中非常罕见.
read_http() { local url host path login port url="${1#http://}" host="${url%%/*}" path="${url#${host}}" login="${host%${host#*@}}" host="${host#${login}@}" port="${host#${host%:*}}" host="${host%:${port}}" ( exec 3<>"/dev/tcp/${host}/${port:-80}" || exit $? >&3 echo -n "GET ${path:-/} HTTP/1.1"$'\r\n' >&3 echo -n "Host: ${host}"$'\r\n' [[ -n ${login} ]] && >&3 echo -n "Authorization: Basic $(uuencode <<<"${login}")"$'\r\n' >&3 echo -n $'\r\n' while read line <&3; do line="${line%$'\r'}" echo "${line}" >&2 [[ -z ${line} ]] && break done dd <&3 ) }
OTOH,如果你安装了Perl的LWP,它应该附带一个名为GET的样本二进制文件......
您可以使用以下命令:
curl -O http://www.domain.com/file.flv