当前位置:首页 » 文件管理 » 编写FTP服务的扫描程序

编写FTP服务的扫描程序

发布时间: 2023-05-24 21:33:20

1. 理光3501安装ftp扫描方法

理光FTP扫描设置教程
此教程主要用来解决WIN10系统下不能使用SMB文件夹扫描的问题,由于旧的SMB协议存在安全漏洞,所以微软在新的系统,WIN8/WIN10/SERVER2012 2016 2018里使用了新的SMB传输协议,理光03以下的机器使用的是老的SMB协议,所以要解决这个问题,可以选择升级复印机固定或者采用FTP传输的方式,在这里东莞乐印办公(www.leyinoa.com)以WIN7系统为例,其他版本的系统大同小异,有些功能可能位置不同,因为大部分都是行业从业人员,具备一定的电脑基础,不再详细说明,这里把关键点都列举出来,
1. 开通FTP服务
控制面板-程序和功能-打开和关闭WINDOWS功能-勾选“Internet信息服务”下的所有项目(FTP服务器、WEB管理工具、万维网服务),点确定,稍等几分钟。
2. 计算机点右键-管理-服务和应用程序-INTERNET信息服务(IIS)管理器-网站点右键-添加FTP站点。FTP站定名称:FTP-SCAN,物理路径选中你要存放扫描的文件夹,IP地址输入本机的IP地址,SSL选择无,身份验证选择匿名,允许访问选择所有用户,权限勾选读取和写入。完成之后先新建一个名为scan 的计算机用户,密码设置为scan123。

3.选中FTP站点,点击右边的“基本设置”出现以下对话框,连接为需要输入2步骤新建的用户和密码,测试设置中身份认证和授权两个都通过才可以

4.FTP服务已经创建完了,在网页上登录打印的IP地址,进入地址簿管理,新建一个地址簿,协议选择FTP,服务器名称就是刚才建FTP时输入的IP地址,路径为空,登录用户名称为匿名账号:anonymous 密码为空。登记完毕,测试扫描OK。

2. 编写一个简单的FTP客户机程序,要求能够向FTP服务器发送命令,并接收FTP服务器返回的响应与数据. 谢谢了~

点量Http/FTP组件的功能简介:

标准Http和FTP下载支持:完全标准的Http和FTP协议支持,内部通过网址自动区分是Http还是FTP下载。
极速下载(2.0以后版本):超越国内绝大多数下载软件的下载速度。新版内核在2M ADSL的环境下下载,有些文件的速度可以达到1400K字节/秒以上,超过了带宽的极限。下载速度可以用极速形容。
多线程传输:可以将文件自动分块,并采用多线程下载。并可自由设置线程数目。
断点续传:点量Http/FTP有优秀的断点续传支持,每次启动自动从上次下载的位置开始,不需要重复下载。
提供详细的下载详情接口(2.0以后版本):可以看到整个下载过程的步骤,比如开启了多少线程、服务器的应答过程、错误信息等。
支持多种高级设置:设置线程数目、磁盘缓存大小、搜索镜像服务器的详细参数设置、下载文件完成后同步文件为服务器上的文件时间、下载过程中可以自定义文件临时后缀、未完成的文件设为隐藏属性。
支持磁盘缓存:点量Http/FTP下载DLL支持设置磁盘缓存,减少对磁盘的读写,并提升下载速度。
支持设置Refer:点量Http/FTP下载组件支持设置下载时的Refer,以便可以绕过一些防盗链的网站,直接下载内容。
限速功能:点量Http/FTP下载组件可方便的设置下载限速。
多种磁盘分配方式:点量Http/FTP下载组件支持预分配和边下载边分配两种磁盘方式,满足多种下载需求。
自动搜索镜像加速:点量Http/FTP内置了镜像搜索功能,在下载文件的同时,会自动搜索哪些其它网站还有这个文件,自动从其它网址下载加速。
可提供源码:支付一定的费用,便可以获得全部的点量Http/FTP下载组件的源代码,免除您的所有后顾之忧。
良好的服务:作为点量软件旗下的软件,可享受到点量软件的优秀服务,我们的服务让您如同拥有一个称心的专业员工。

点量Http/FTP 下载组件可以适用于任何Http和FTP下载的领域,让您可以在1天内完成一个完整的Http下载软件的全部功能。比如,您可以用于产品的升级、文件的下载和传输等。

3. 求用java写一个ftp服务器客户端程序。

import java.io.*;
import java.net.*;public class ftpServer extends Thread{ public static void main(String args[]){
String initDir;
initDir = "D:/Ftp";
ServerSocket server;
Socket socket;
String s;
String user;
String password;
user = "root";
password = "123456";
try{
System.out.println("MYFTP服务器启动....");
System.out.println("正在等待连接....");
//监听21号端口
server = new ServerSocket(21);
socket = server.accept();
System.out.println("连接成功");
System.out.println("**********************************");
System.out.println("");

InputStream in =socket.getInputStream();
OutputStream out = socket.getOutputStream();

DataInputStream din = new DataInputStream(in);
DataOutputStream dout=new DataOutputStream(out);
System.out.println("请等待验证客户信息....");

while(true){
s = din.readUTF();
if(s.trim().equals("LOGIN "+user)){
s = "请输入密码:";
dout.writeUTF(s);
s = din.readUTF();
if(s.trim().equals(password)){
s = "连接成功。";
dout.writeUTF(s);
break;
}
else{s ="密码错误,请重新输入用户名:";<br> dout.writeUTF(s);<br> <br> }
}
else{
s = "您输入的命令不正确或此用户不存在,请重新输入:";
dout.writeUTF(s);
}
}
System.out.println("验证客户信息完毕...."); while(true){
System.out.println("");
System.out.println("");
s = din.readUTF();
if(s.trim().equals("DIR")){
String output = "";
File file = new File(initDir);
String[] dirStructure = new String[10];
dirStructure= file.list();
for(int i=0;i<dirStructure.length;i++){
output +=dirStructure[i]+"\n";
}
s=output;
dout.writeUTF(s);
}
else if(s.startsWith("GET")){
s = s.substring(3);
s = s.trim();
File file = new File(initDir);
String[] dirStructure = new String[10];
dirStructure= file.list();
String e= s;
int i=0;
s ="不存在";
while(true){
if(e.equals(dirStructure[i])){
s="存在";
dout.writeUTF(s);
RandomAccessFile outFile = new RandomAccessFile(initDir+"/"+e,"r");
byte byteBuffer[]= new byte[1024];
int amount;
while((amount = outFile.read(byteBuffer)) != -1){
dout.write(byteBuffer, 0, amount);break;
}break;

}
else if(i<dirStructure.length-1){
i++;
}
else{
dout.writeUTF(s);
break;
}
}
}
else if(s.startsWith("PUT")){
s = s.substring(3);
s = s.trim();
RandomAccessFile inFile = new RandomAccessFile(initDir+"/"+s,"rw");
byte byteBuffer[] = new byte[1024];
int amount;
while((amount =din.read(byteBuffer) )!= -1){
inFile.write(byteBuffer, 0, amount);break;
}
}
else if(s.trim().equals("BYE"))break;
else{
s = "您输入的命令不正确或此用户不存在,请重新输入:";
dout.writeUTF(s);
}
}

din.close();
dout.close();
in.close();
out.close();
socket.close();
}
catch(Exception e){
System.out.println("MYFTP关闭!"+e);

}
}}

4. 用C语言写一个FTP的客户端程序,需要了解哪些知识

一、需要的知识点:
1、SOCKET技术,网络编程的基本功能
2、FTP
3、如果需要自己写,可能需要熟悉各个网络框架
二、编写FTP所需要掌握的框架
1、wininet
2、libcurl

5. 给出一个C++或Java编写的ftp服务器程序

给你一个MFC写的:
// FtpClient.h: interface for the CFtpServer class.
//

#if !defined(_FTPCLIENT_H)
#define _FTPCLIENT_H

#include <afxinet.h>

class CFtpClient
{
//构造/析构函数
public:

CFtpClient(const char *pszFtpIp, const char *pszFtpPort, const char *pszFtpUser, const char *pszFtpPassWord);
//功能:构造函数
//参数:pszFtpIp---------Ftp服务器IP地址
// pszFtpPort-------Ftp服务器端口
// pszFtpUser-------Ftp用户名
// pszFtpPassWord---Ftp用户密码
//返回值:无

virtual ~CFtpClient();
//功能:析构函数
//参数:无
//返回值:无

//公有成员函数
public:

BOOL ConnectFtpServer();
//功能:连接FTP服务器
//参数:无
//返回值:TRUE--连接成功,FALSE--连接失败

void DisConnectFtpServer();
//功能:断开与FTP服务器的连接
//参数:无
//返回值:无

BOOL PutFileToFtpServer(const char *pszFilePath);
//功能:上传指定的文件到FTP服务器
//参数:要上传的文件名
//返回值:TRUE--连接成功,FALSE--连接失败

BOOL GetFileFromFtpServer(const char *pszFilePath);
//功能:从FTP服务器下载指定文件
//参数:要下载的文件名
//返回值:TRUE--连接成功,FALSE--连接失败

CString GetUpLoadFilePath();
//功能:得到上传文件名
//参数:无
//返回值:得到的当前路径

//私有成员变量
private:
char m_szFtpIp[20]; //Ftp服务器IP地址
UINT m_uFtpPort; //Ftp服务器端口
char m_szFtpUser[20]; //Ftp用户名
char m_szFtpPassWord[20]; //Ftp用户密码

CInternetSession *m_pInetSession; //Internet会话对象指针
CFtpConnection *m_pFtpConnection; //FTP服务连接对象指针
};

#endif

// FtpClient.cpp: implementation of the CFtpServer class.
//

#include "FtpClient.h"

CFtpClient::CFtpClient(const char *pszFtpIp, const char *pszFtpPort, const char *pszFtpUser,const char *pszFtpPassWord)
{
strcpy(m_szFtpIp, pszFtpIp);
m_uFtpPort = atoi(pszFtpPort);
strcpy(m_szFtpUser, pszFtpUser);
strcpy(m_szFtpPassWord, pszFtpPassWord);

m_pInetSession = NULL;
m_pFtpConnection = NULL;
}

CFtpClient::~CFtpClient()
{

}

BOOL CFtpClient::ConnectFtpServer()
{
//创建Internet会话
m_pInetSession = new CInternetSession(AfxGetAppName(), 1, PRE_CONFIG_INTERNET_ACCESS);

try
{
//连接Ftp服务器
m_pFtpConnection = m_pInetSession->GetFtpConnection(m_szFtpIp, m_szFtpUser, m_szFtpPassWord, m_uFtpPort);
}
catch(CInternetException *pEx)
{
char szError[1024];
pEx->GetErrorMessage(szError, 1024);
pEx->Delete();

CLog Log;
Log.RecordLog("连接Ftp服务器", CString("9999"), CString(szError));

return FALSE;
}

return TRUE;
}

void CFtpClient::DisConnectFtpServer()
{
if(m_pFtpConnection != NULL)
{
m_pFtpConnection->Close();
delete m_pFtpConnection;
m_pFtpConnection = NULL;
}

if(m_pInetSession !=NULL)
{
m_pInetSession->Close();
delete m_pInetSession;
m_pInetSession = NULL;
}
}

BOOL CFtpClient::PutFileToFtpServer(const char *pszFilePath)
{
//1. 判断服务器是否连接
if(m_pFtpConnection == NULL)
{
return FALSE;
}

char szLocalFile[200] = {0};
char szRemoteFile[200] = {0};

//2. 本地文件名
sprintf(szLocalFile, "%s", pszFilePath);

//3. 远程文件名
char szDrive[10] = {0};
char szDir[210] = {0};
char szFileName[70] = {0};
char szExt[10] = {0};

_splitpath(pszFilePath, szDrive, szDir, szFileName, szExt);
sprintf(szRemoteFile, "%s\\%s.%s", g_strEnterpriseID, szFileName, szExt);

//4. 文件上传
if(!m_pFtpConnection->PutFile(szLocalFile, szRemoteFile))
{
return FALSE;
}

return TRUE;
}

BOOL CFtpClient::GetFileFromFtpServer(const char *pszFilePath)
{
//1. 判断服务器是否连接
if(m_pFtpConnection == NULL)
{
return FALSE;
}

char szLocalFile[200] = {0};
char szRemoteFile[200] = {0};

//2. 本地文件名
sprintf(szLocalFile,"%s",pszFilePath);

//3. 远程文件名
char szDrive[10] = {0};
char szDir[210] = {0};
char szFileName[70] = {0};
char szExt[10] = {0};

_splitpath(pszFilePath, szDrive, szDir, szFileName, szExt);
sprintf(szRemoteFile, "%s\\%s.%s", g_strEnterpriseID, szFileName, szExt);

//4. 文件下载
if(!m_pFtpConnection->GetFile(szRemoteFile, szLocalFile))
{
return FALSE;
}

return TRUE;
}

CString CFtpClient::GetUpLoadFilePath()
{
CString strPath = "", strDir = "";

//得到当前日期
CTime time = CTime::GetCurrentTime();
CString strDate = time.Format("%Y%m%d");

//得到上传文件路径
char filepath[MAX_PATH];
GetMoleFileName(NULL, filepath, MAX_PATH);
strDir.Format("%s", filepath);
strPath = strDir.Left(strDir.ReverseFind('\\')) + strDate + "\\*.txt";

return strPath;
}
//保存成两个文件,然后添加到你的工程中就可以调用了。

6. 一、 编写一个简易的FTP客户端程序,要求能够通过用户名,密码以及URL地址浏览和下载FTP服务器上的资源。

java界面?纯java程序吗,还是jsp。纯java程序的话,需要引入java.net.url包。
try{getAppletContext().showDocument(new URL("http://www.163.com"),"打开位置");}
catch(Exception ex) {System.out.println("error"); }
就超链接了。
FTP连接可以写为如 ftp://用户名:密码@163.com

7. 求MFC编写的FTP服务器和客户端程序

我这有一个以前自学用的例子,你看看需要不?

运行程序,打开程序主界面,如图1.1所示。输入FTP服务器IP地址、服务器端口、用户名及密码,单击“快速登录”按钮,连接FTP服务器。连接成功后,设置下载文件存储目录,然后就可以上传及下载文件了。下载文件过程中,可以暂停及删除下载任务。

图1.1 FTP文件上传下载模块主窗口

在“功能选项”菜单下选择“下载后关机”命令,文件下载完成后,自动关闭计算机。

8. 给出一个C++或Java编写的ftp服务器程序

Socket TCP
反射API介绍

4.Java Socket编程 TCP 协议编程
1) TCP工作模型: 先找
堂(主机/IP), 到食堂以后找窗口
(Socket/套接字 端口号), 服务员等待连接,客户向服务仔知兆员发起连接
连接以后, 一个窗口可以为每个客户安排一个服务员(线程)提供服务,
每个服务过程可以双向交流通讯(流), 通讯完成后要关闭连接.
5. TCP 服务端编程(食堂)(java.io.*,java.net.*,java.lang.*)
1) 创建ServerSocket实例绑定一个服务端口(Socket/套接字 端口号)
2) 开始ServerSocket实例 的监听, 等待客户端的连接
3) 如果有客户连接进来, 就获得了客户的套接字(Socket)实例
客户的套接字(Socket)实例中包念租括与客户端建立的连接流
4) 为这个客户(Socket) 创建一个服务线程, 提供服务(run方法)
5) 继续等待下一个连接, 返回到2)
6) 服务线程 完成通讯服务过程

7) 端口号: 0~65535, 1K以下留给系统使用

6. TCP 客户端编程
1) 创建Socket 实例, 连接到服务器端, 成功创建猛贺s就表示连接到了
服务器
Socket s = new Socket("host", port)
2) 客户端 Socket 与服务器端 Socket 对应, 都包含输入, 输出流
客户端的s.getInputStream() 连接于服务器s.getOutputStream()
客户端的s.getOutputStream()连接于服务器s.getInputStream()
3) 使用线程处理 网络流

7. Java 反射
1) 反射是Java自我管理(类, 对象)的机制
2) * 可以通过反射机制发现对象的类型 发现类型的方法/属性/构造器
3) * Java 反射 可以创建对象 并 访问任意对象方法和属性等
4) Class 加载
类加载到内存: java 将磁盘类文件加载到内存中,为一个对象(实例)
这个对象是Class的实例, 也就是 这些对象都是Class实例
5)Class 实例代表Java中类型, 基本类型的类型: int.class, long.class
类类型 Class 实例获得如下:
Class cls = String.class;
Class cls = Class.forName("java.lang.String");
Class cls = "abc".getClass();
以上方法获得cls 是同一个对象, 就是String 类内存加载的结果

package javase2.day06.ftp;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;
/**
* ftp 客户端 可以使用命令 ls pwd get
*/
public class FtpClient {
public static void main(String[] args)
throws IOException{
FtpClient client = new FtpClient();
client.open();
}
public void open() throws IOException{
Socket s = new Socket("localhost", 9000);
InputStream in = s.getInputStream();
OutputStream out = s.getOutputStream();
//处理客户端对服务器的请求
new RequestProcess(out).start();
//处理服务器的反馈信息
new ResponseProcess(in).start();
}
//处理客户端对服务器的请求
class RequestProcess extends Thread{
OutputStream out;
public RequestProcess(OutputStream out) {
this.out = out;
}
public void run() {
try{
Scanner sc = new Scanner(System.in);
while(true){
String s = sc.nextLine();
IOUtils.println(out, s);
if(s.equals("bye")){
System.exit(0);
}
}
}catch(IOException e){
e.printStackTrace();
}
}
}
class ResponseProcess extends Thread{
InputStream in;
public ResponseProcess(InputStream in) {
this.in = in;
}
public void run() {
try{
while(true){
String header = IOUtils.readLine(in);
if(header.startsWith("text,")){
show(header,in);
}else if(header.startsWith("file,")){
save(header, in);
}
}
}catch(IOException e){
e.printStackTrace();
}
}
}
public void show(String header, InputStream in)
throws IOException {
int n = Integer.parseInt(header.split(",")[1]);
for(int i=0; i<n; i++){
String s = IOUtils.readLine(in);
System.out.println(s);
}
}
public void save(String header, InputStream in)
throws IOException{
File dir = new File("ftp");
if(!dir.exists()){
dir.mkdir();
}
//header: file,10,filename
String[] data = header.split(",");
long length = Long.parseLong(data[1]);
String filename = data[2];
File file = new File(dir, filename);
BufferedOutputStream out =
new BufferedOutputStream(
new FileOutputStream(file));
for(long i=0; i<length; i++){
int b = in.read();
out.write(b);
}
out.close();
}

}

package javase2.day06.ftp;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
/**
* 模拟FTP服务器, 支持命令pwd,ls,get file
*
* 协议: type,length,value TLV格式
*
* 文本: text,5\nline1\nline2\nline3\nline4\nline5\n
* 文件: file,4,filename\n 41 42 43 44
*
* text,5\nline1\nline2\nline3\nline4\nline5\nfile,4,filename\n 41 42 43 44
*/
public class FtpServer {
public static void main(String[] args)
throws IOException{
FtpServer server = new FtpServer();
server.start();
}

public void start() throws IOException{
ServerSocket ss = new ServerSocket(9000);
while(true){
Socket s = ss.accept();
new Agent(s).start();
}
}
class Agent extends Thread{
Socket s;
public Agent(Socket s) {
this.s = s;
}
public void run() {
try{
InputStream in = s.getInputStream();
OutputStream out = s.getOutputStream();
//向客户端发送, 先发协议头,再发送文本行
out.write("text,1\n".getBytes());//协议头
//发送消息内容, 一行文本消息
out.write("欢迎使用FTP演示服务器!\n".getBytes());
out.flush();
while(true){
//读取客户端发送到命令
String cmd = IOUtils.readLine(in).trim();
if("pwd".equals(cmd)){//显示当前目录
pwd(out);
}else if("ls".equals(cmd)){
ls(out);
}else if(cmd.startsWith("get ")){
get(cmd, out);
}else if("bye".equalsIgnoreCase(cmd)){
IOUtils.println(out, "text,1");
IOUtils.println(out, "Bye, Bye!");
s.close();
}else{
out.write("text,1\n".getBytes());//协议头
out.write("只支持pwd,ls,get,bye!\n".getBytes());
out.flush();
}
}
}catch(IOException e){
e.printStackTrace();
}
}
}
public void pwd(OutputStream out)
throws IOException{
File dir = new File(".");
IOUtils.println(out, "text,1");
IOUtils.println(out, dir.getCanonicalPath());
}
public void ls(OutputStream out)
throws IOException{
File dir = new File(".");
File[] files = dir.listFiles();
IOUtils.println(out, "text,"+files.length);
for (File f : files) {
if(f.isDirectory()){
IOUtils.println(out, "["+f.getName()+"]");
}else{
IOUtils.println(out, f.getName());
}
}
}
public void get(String cmd, OutputStream out)
throws IOException{
//cmd="get filename"
String name = cmd.split("\\s+")[1];
File file = new File(name);
if(! file.exists()){
IOUtils.println(out, "text,1");
IOUtils.println(out, "没有文件呀!"+name);
return;
}
//文件协议头:
IOUtils.println(out,
"file,"+file.length()+","+name);
FileInputStream in =
new FileInputStream(file);
IOUtils.cp(in, out);
out.flush();
in.close();
IOUtils.println(out, "text,1");
IOUtils.println(out, "发送成功:"+name);
}
}

9. 如何在win10系统搭建ftp服务

FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。


Windows10设置FTP步骤大致如下:

  1. 右键开始菜单中选择”控制面板“,进入控制面板;

  2. 在控制面板中选择”程序“,进入程序设置界面;

  3. 在程序界面中的“程序和功能”中,点击选择“启用或关闭Windows功能”,弹出“Windows功能”框;

  4. 找到“Internet Information Services ”项,将“Internet Information Services ”项中的FTP服务器、Web服务器、万维网服务等所有功能前的框勾上,点击确定,Windows将自动配置相关功能;

  5. 系统配置完成后,依次打开控制面板,选择“系统和安全”,进入“系统和安全”界面后找到并打开“管理工具”;

  6. 在管理工具界面,点击打开“Internet Information Services (IIS)管理器”,进入(IIS)管理器后,在左栏的“网站”上点击右键,选择“添加FTP站点;

  7. 在“添加FTP站点”界面填写ftp站点名称,及物理路径等信息,点击下一步;

  8. 设置IP地址及SSL等,(一般SSL选择“无SSL”)单击下一步;

  9. 设置FTP身份验证及授权信息,点击完成即可FTP服务器的设置。

热点内容
网吧怎么通过服务器玩网络游戏 发布:2025-02-08 19:59:52 浏览:912
文档编辑加密 发布:2025-02-08 19:56:31 浏览:390
phpmysql存储过程实例 发布:2025-02-08 19:54:40 浏览:159
淘宝卖的地下城脚本 发布:2025-02-08 19:41:40 浏览:61
安卓怎么把提升画质关了 发布:2025-02-08 19:40:11 浏览:361
我想你加密 发布:2025-02-08 19:39:24 浏览:215
java手机号正则表达式 发布:2025-02-08 19:34:50 浏览:353
ue加密 发布:2025-02-08 19:34:05 浏览:476
滁州压缩机 发布:2025-02-08 19:34:03 浏览:882
压缩棉花絮片 发布:2025-02-08 19:33:12 浏览:395