mIRC Homepage
Posted By: MTech ftp - 25/07/03 10:20 PM
how can i check to see if a ftp is online, on port 21?
Posted By: codemastr Re: ftp - 25/07/03 10:22 PM
Umm well I guess you'd learn the FTP protocol and see if when you connect to port 21 you get a valid FTP response.
Posted By: MTech Re: ftp - 25/07/03 10:23 PM
yeah, but i was wondering if someone could help me that already knew it
Posted By: codemastr Re: ftp - 25/07/03 10:30 PM
Well the first (and easiest) step would be try and make sure sockopen suceeds on port 21, if it doesn't then you know there isn't an ftp server. Next thing you want to check for is probably going to be a 220 reply. The 220 reply looks like:

220 some-text-here
The text can be anything, so just check for the 220. In some circumstances, the server might be busy and to tell you this it will send a 120 reply. Again, you should only ensure that the first word is 120, the text after it will vary. Lastly, it may reply with a 421. This indicates it is an ftp server, but it doesn't want to let you connect. It is possible that other messages might be sent, but those are the standard ones that you should expect.
Posted By: MTec89 Re: ftp - 25/07/03 10:44 PM
ok i did this:
Code:
alias cftp {
  if ($1 != $null) {
    sockopen ftp $1 21
  }
}
on *:SOCKREAD:ftp:{
  /sockread %temp
  /write ftp.txt %temp
}
on *:SOCKOPEN:ftp:{
  sockwrite -n $sockname GET / HTTP/1.1
  sockwrite -n $sockname Host: mtec89.ath.cx
  sockwrite -n $sockname Connection: keep-alive
  sockwrite $sockname $crlf
}

and got this:
Code:
220 MTec FTP
500 Unknown command.
500 Unknown command.
500 Unknown command.


so it knows it's online right? now how do i just make it check to see if its online, and do a command if its onlines, and if not, do nothing
Posted By: theRat Re: ftp - 26/07/03 12:33 AM
Why are you sending HTTP commands to FTP server, those are two diffrent protocols?
Posted By: MTec89 Re: ftp - 26/07/03 12:45 AM
because i dont know anything about sockets, thats why im trying to get help..
Posted By: MTec89 Re: ftp - 26/07/03 03:58 AM
can someone please help me with this?
Posted By: KingTomato Re: ftp - 26/07/03 07:13 AM
How about reading the RFC about FTP. Or is that again too hard a task for you, and looking for qwerty to spell it out for you again
Posted By: MTec89 Re: ftp - 26/07/03 12:52 PM
who is qwerty?
Posted By: Watchdog Re: ftp - 26/07/03 01:06 PM
Another chap that uses this web board.

qwerty

I just realised something too, it would be very hard to mis-spell his name.
Posted By: LocutusofBorg Re: ftp - 26/07/03 01:39 PM
You have no idea of the stupidity of some internet users then smile

Over 10% would misspell it on the first attempt
Posted By: Watchdog Re: ftp - 26/07/03 02:49 PM
lol.

*Watchdog slaps his jowls.
Posted By: codemastr Re: ftp - 26/07/03 03:32 PM
You shouldn't have to send anything to the server, it should send you the 220 when you connect.
Posted By: MTec89 Re: ftp - 26/07/03 04:19 PM
eh...this is too difficult...i have other projects to get done to worry about this...

thanks for ur time ;p
Posted By: tomalak16 Re: ftp - 26/07/03 08:25 PM
it's not that difficult..

Code:
alias cftp { sockopen ftp $$1 $iif($2,$2,21) | .timerWaitForFTP 1 5 echo -s FTP on $$1 is not responding or does not exist }
on *:sockread:ftp:{
   var %temp | sockread %temp
   if ($gettok(%temp,1,32) == 220) echo -s FTP on $sock($sockname).ip is online and serving
   if ($gettok(%temp,1,32) == 120) echo -s FTP on $sock($sockname).ip is online but busy
   if ($gettok(%temp,1,32) == 421) echo -s FTP on $sock($sockname).ip is online but not willing to serve
   unset %waitForFTP | sockclose ftp | .timerWaitForFTP off
}
© mIRC Discussion Forums