创建ASP组件修改《SERV-U》FTP的密码

 

新建一《SERV-U》FTP服务器,在ASP中修改指定帐户的密码,写了一ASP组件来修改《SERV—U》FTP密码。

启动《Vb6.0》,选择新建ActiveX DLL,更改工程属性中的工程名称为“Ftpcommand”,将CLASS名改为XJNFTP,源程序如下:

Private Const scUserAgent = "vb wininet"

Private Const INTERNET_OPEN_TYPE_PRECONFIG = 0

Private Const INTERNET_OPEN_TYPE_DIRECT = 1

Private Const INTERNET_OPEN_TYPE_PROXY = 3

Private Const INTERNET_INVALID_PORT_NUMBER = 0

Private Const FTP_TRANSFER_TYPE_BINARY = &H2

Private Const FTP_TRANSFER_TYPE_ASCII = &H1

Private Const INTERNET_FLAG_PASSIVE = &H8000000

Private Const INTERNET_SERVICE_FTP = 1

Private Const INTERNET_SERVICE_GOPHER = 2

Private Const INTERNET_SERVICE_HTTP = 3

Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" _

(ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, _

ByVal sProxyBypass As String, ByVal lFlags As Long) As Long

Private Declare Function FtpCommand Lib "wininet.dll" Alias "FtpCommandA" _

(ByVal hConnect As Long, ByVal fExpectResponse As Boolean, ByVal dwFlags As Long, _

ByVal lpszCommand As String, ByVal lContext As Long, phFtpCommand As Long) As Boolean

Private Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" _

(ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, _

ByVal sUsername As String, ByVal sPassword As String, ByVal lService As Long, _

ByVal lFlags As Long, ByVal lContext As Long) As Long

Private hOpen As Long

Private hConnection As Long

Private Declare Function InternetCloseHandle Lib "wininet.dll" _

(ByVal hInet As Long) As Integer

Private newPASSWORD As String

Private oldPASSWORD As String

Private userName As String

Private URLSTR As String

‘修改FTP密码主程序

Public Function getStr() As String

hOpen = 0

hConnection = 0

Dim nFlag As Long

Dim strCmd As String

nFlag = INTERNET_FLAG_PASSIVE

‘建立FTP修改密码命令字符串

strCmd = "SITE PSWD " & oldPASSWORD & Space(1) & newPASSWORD

‘建立internet连接

hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)

If hOpen = 0 Then getStr = "不能打开连接。..."

If hOpen <> 0 Then

‘与FTP服务器建立连接

hConnection = InternetConnect(hOpen, URLSTR, NTERNET_INVALID_PORT_NUMBER, _

userName, oldPASSWORD, INTERNET_SERVICE_FTP, nFlag, 0)

If hConnection <> 0 Then

bret = FtpCommand(hConnection, False, FTP_TRANSFER_TYPE_ASCII, strCmd, 0, hFile)

If bret Then

getStr = "密码修改成功!..."

Else

getStr = "密码修改失败!..."

End If

Else

getStr = "无法登录至FTP服务器,请检查帐户名或密码是否正确。"

End If

End If

‘断开internet连接

If hConnection <> 0 Then InternetCloseHandle (hConnection)

‘断开FTP服务器连接

If hOpen <> 0 Then InternetCloseHandle (hOpen)

End Function

‘传入FTP服务器的URL

Public Property Let URL(URL1 As String)

URLSTR = URL1

End Property

‘传入FTP原有密码

Public Property Let oldPSD(psd As String)

oldPASSWORD = psd

End Property

‘传入FTP新密码

Public Property Let newPSD(psd1 As String)

newPASSWORD = psd1

End Property

‘传入FTP帐户名

Public Property Let user(psd2 As String)

userName = psd2

End Property

编译成Ftpcommand.DLL,在ASP服务器端注册该组件,(VB6.0在ASP服务器中自动注册),在ASP中调用该组件,源程序如下:

<%

‘接受传入的帐户名

user=trim(request.form("id"))

‘接受传入的原密码

psw=trim(request.form("password"))

‘接受传入的新密码

pswx=trim(request.form("passwordx"))

‘创建FTP组件应用实例

Dim obj

Set obj = Server.CreateObject("ftpcommand.xjnftp")

‘给FTP组件传送帐户名

obj.user=user

‘给FTP组件传送原密码

obj.oldpsd=psw

‘给FTP组件传送新密码

obj.newpsd=pswx

‘给FTP组件传送FTP服务器域名地址(URL)

obj.url="ftp://ftp.luckybbs.com"

rr=obj.getstr()

Response.Write("<meta HTTP-EQUIV=REFRESH CONTENT=3;URL=/main.asp>")

Response.Write("<p><center><font color=#ff0000>"+rr+"!")

Response.Write("<center><font color=#ff0000>系统3秒钟后自动返回!!!</font></center>")

Response.Write("<br><center><a href=main.asp>返回</a></center>")

set obj=nothing

response.end

%>

本实例在WINDOWS 2000 SERVER ,IIS 5.0 ,SERV-U4.0 ,VB6.0中通过。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值