我需要ftp服务器中所有文件和文件夹的列表。
整个服务器是否有与NLST类似的命令,而不仅仅是当前目录?
我使用PASV模式。 这是连接到服务器:
void create_socket(int &sock, const char* server_ip, const unsigned short server_port)
{
struct sockaddr_in server_addr;
memset(&server_addr, 0, sizeof(server_addr));// zero out structure
server_addr.sin_family = AF_INET;// internet address family
server_addr.sin_addr.s_addr = inet_addr(server_ip);// server IP address
server_addr.sin_port = htons(server_port);// server port
if ((sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0)
{
}
if (connect(sock, (struct sockaddr *) &server_addr, sizeof(server_addr)) < 0)
{
std::cout << "connect error: " << strerror(errno) << std::endl;
exit(1);
}
}
答案 0 :(得分:4)
FTP服务命令的完整列表从RFC 959的第29页开始。
没有&#34;列出服务器的全部内容&#34;命令;很可能是因为与访问权限/控制相关的限制(通过rfc文本搜索&#39;访问控制)。