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
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
···
from :0