2012年3月30日 星期五

vb6 與 ipv6 多處無法支援

目前專案有一個需求, 要把舊系統搬到 ipv6 的環境下運作, 其中一個遇到的問題就是 ftp 元件, 我先挑戰使用 vb6 call Windows user mode API:

Public Declare Function FtpPutFile Lib "wininet.dll" Alias "FtpPutFileA" (ByVal hFtpSession As Long, ByVal lpszLocalFile As String, ByVal lpszRemoteFile As String, ByVal dwFlags As Long, ByVal dwContext As Long) As Boolean


在 ftp filezilla server 看到的 log 如下:
- (not logged in) (fe80::21f:29ff:feec:8116)> Connected, sending welcome message...
- (not logged in) (fe80::21f:29ff:feec:8116)> 220-FileZilla Server version 0.9.41 beta
- (not logged in) (fe80::21f:29ff:feec:8116)> 220-written by Tim Kosse (Tim.Kosse@gmx.de)
- (not logged in) (fe80::21f:29ff:feec:8116)> 220 Please visit http://sourceforge.net/projects/filezilla/
- (not logged in) (fe80::21f:29ff:feec:8116)> USER ipv6ftptest
- (not logged in) (fe80::21f:29ff:feec:8116)> 331 Password required for ipv6ftptest
- (not logged in) (fe80::21f:29ff:feec:8116)> PASS ***********
- ipv6ftptest (fe80::21f:29ff:feec:8116)> 230 Logged on
- ipv6ftptest (fe80::21f:29ff:feec:8116)> TYPE I
- ipv6ftptest (fe80::21f:29ff:feec:8116)> 200 Type set to I
- ipv6ftptest (fe80::21f:29ff:feec:8116)> EPRT |2|fe80::21f:29ff:feec:8116%10|1039|
- ipv6ftptest (fe80::21f:29ff:feec:8116)> 501 Syntax error, not a valid IPv6 address
- ipv6ftptest (fe80::21f:29ff:feec:8116)> disconnected.

說明: 使用 ipv6 的 address 是可以 login, 但是固定在 EPRT 指令時就會出錯, 但下這行指令是被手包在 API 裡無法修改, 結論: 改用 .net 開發, 這年頭好像沒有人在用 vb6 做開發...

沒有留言:

張貼留言

Facebook 留言板