我正在尝试从FTP下载文件。它在家里工作正常但是当我在公司网络上运行时它不起作用。我知道代理有一些事情要做。我在Python中查看了一些有关代理问题的帖子。我试图建立与代理的连接。它适用于url,但在连接到FTP时失败。有谁知道这样做的方法?提前谢谢。
以下是我的代码:
main
我收到的错误消息:
int main( void )
我可以使用FileZilla通过代理连接,选择具有规范的自定义FTP代理:
#include <stdio.h>
void add( int *a, const int *b, const int *c, size_t size); /* Function Prototype */
#define N 5
int main( void )
{
int a[N];
const int b[N] = { 1, 2, 3, 4, 5 };
const int c[N] = { 1, 1, 1, 1, 1 };
add( a, b, c, N );
for ( size_t i = 0; i < N; i++ )
{
printf( "%d\t", a[i] );
}
return 0;
}
void add( int *a, const int *b, const int *c, size_t size )
{
for ( size_t i = 0; i < size; i++ )
{
a[i] = b[i] + c[i];
}
}
答案 0 :(得分:0)
您正在使用FTP代理进行连接。
FTP代理无法使用HTTP,因此针对http://
www.google.com
的{{1}}网址的测试完全无关紧要,并且无法证明任何内容。
FTP代理作为FTP服务器。您连接到代理,而不是实际的服务器。然后使用用户名(或其他凭据)的一些特殊语法来指定您的实际目标FTP服务器及其凭据。在您的情况下,用户名的特殊语法是user@host user_proxy
。
这适用于您的具体情况:
host_proxy = '192.168.149.50'
user_proxy = 'XXX'
pass_proxy = 'YYY'
user = 'user'
pass = 'burnt_data'
host = 'ba1.geog.umd.edu'
u = "%s@%s %s" % (user, host, user_proxy)
ftp = ftplib.FTP(host_proxy, u, pass, pass_proxy)
不需要其他代码(urllib
或其他任何代码)。