John Pywtorak
10/18/2006 7:08:00 PM
Looks like a passive ftp mode problem versus standard ftp using port 20,
and 21. See if at the api you can turn passive mode on.
Hope that helps.
lsumnler@gmail.com wrote:
> Gavin Kistner wrote:
>> From: lsumnler@gmail.com [mailto:lsumnler@gmail.com]
>>> ftp = Net::FTP::new('my.url.com')
>>> ftp.login('login_id','login_pass',nil)
>>> ftp.chdir('data')
>>>
>>> all goes fine but at this point I have tried all of the following and
>>> get the same errors
>>>
>>> files = ftp.list('data')
>>> files = ftp.dir('data')
>>> files = ftp.dir(dir = nil)
>>> files = ftp.nlst('data')
>>>
>>> Net::FTPPermError: 500 Invalid PORT command.
>> You changed directories into 'data', and are then trying to list a
>> 'data' dir?
>>
>> FWIW, all the above worked fine with me using Ruby 1.8.5 on Windows,
>> going to a known-working and accessible FTP server. Smells like either a
>> firewall/port-blocking issue, or a double-NAT issue. To be sure: can you
>> FTP from the command line/shell just fine?
>
> I see what your saying about the 'data' directory and I re-did it
> without changing to the 'data' directory and get the same error. See
> sample code below;
>
> irb(main):006:0> ftp.login('bruskeftp','35sumler75',nil)
> => "230 User bruskeftp logged in.\n"
> irb(main):007:0> files = ftp.dir('data')
> Net::FTPPermError: 500 Invalid PORT Command.
>
> from c:/ruby/freeride/freeruby-win/lib/ruby/1.8/net/ftp.rb:243:in
> `getresp'
> from c:/ruby/freeride/freeruby-win/lib/ruby/1.8/net/ftp.rb:251:in
> `voidresp'
> from c:/ruby/freeride/freeruby-win/lib/ruby/1.8/net/ftp.rb:274:in
> `voidcmd'
> from c:/ruby/freeride/freeruby-win/lib/ruby/1.8/monitor.rb:229:in
> `synchronize'
> from c:/ruby/freeride/freeruby-win/lib/ruby/1.8/net/ftp.rb:272:in
> `voidcmd'
> from c:/ruby/freeride/freeruby-win/lib/ruby/1.8/net/ftp.rb:290:in
> `sendport'
> from c:/ruby/freeride/freeruby-win/lib/ruby/1.8/net/ftp.rb:298:in
> `makeport'
> from c:/ruby/freeride/freeruby-win/lib/ruby/1.8/net/ftp.rb:329:in
> `transfercmd'
> from c:/ruby/freeride/freeruby-win/lib/ruby/1.8/net/ftp.rb:421:in
> `retrlines'
> from c:/ruby/freeride/freeruby-win/lib/ruby/1.8/monitor.rb:229:in
> `synchronize'
> from c:/ruby/freeride/freeruby-win/lib/ruby/1.8/net/ftp.rb:419:in
> `retrlines'
> from c:/ruby/freeride/freeruby-win/lib/ruby/1.8/net/ftp.rb:628:in
> `dir'
> from (irb):7
> from :0
>
>
> I hate to bring up the "P" word but I did the same thing using python
> and had no problem. Sample code below;
>
>>>> ftp.login('bruskeftp','35sumler75')
> '230 User bruskeftp logged in.'
>>>> ftp.dir('data')
> 10-17-06 01:08PM 19377920 cust.TPS
> 10-17-06 06:29AM 30131456 detail.tps
> 10-12-06 12:32AM 771584 Item.tps
> 10-18-06 02:18AM 3072 mgr.tps
> 10-17-06 06:29AM 617728 open.tps
> 10-17-06 08:40AM 237056 OpnInv.TPS
> 10-18-06 01:34AM 95488 OrdHdr.tps
> 10-17-06 08:24AM 135424 OrdLin.tps
> 10-15-06 12:56AM 4864 PCOrdHdr.TPS
> 10-15-06 12:56AM 4352 PCOrdLin.TPS
> 10-12-06 12:30AM 303616 Price.tps
> 10-18-06 02:18AM 25088 slsmn.tps
>
> Unfortunetly, I am really new to Ruby, and really wanted to start using
> it for some production stuff.
>
> I want to thank you for your time and help if you happen to think of
> anything else I will give it a shot.
>
> Len Sumnler
>
>
>