|
| |||||||
| Showcase - Hazır kodlar mIRC Scripting hakkında hazır kodları bulup, paylaşabileceğiniz bölüm. |
![]() |
| | LinkBack | Seçenekler |
|
#1
| ||||
| ||||
| Yazan: L4roXyL - Hasan AYDENİZ Kod: FTP Upload v0.2a Tarih: 20/11/2011 Not: mIRCScripting.net dökümanıdır. Açıklama: Kodun çalışma şekli, Türkiye'de her yerde bilinen ve kullanılan (ezbere tek yol olarak bilinen) /write sistemi ile değildir. Tamamen socket bağlantı, FTP Raw Command-ları ve ftp passive(pasif modda) işlem yaptırarak, işlem yapılır. Yetkiniz dahilindeki herhangi bir FTP sunucusuna istediğiniz dosyayı yükleyebilirsiniz. Aynı zamanda meraklısına iki farklı kullanım şekli sundum. İsteyen dialog-tablo üzerinden, isteyen direkt komut girerek custom-window üzerinden kodu çalıştırabilir. Kod içerisinde Binary files dosya işleme sistemini kullandım.(file handling ilede yapılabilir) Ek olarak upload edilecek dosya, boyutuna göre parça transfer etme işlemini 3 parçaya böldüm. Kısacası düşük boyutlu dosyalar ile yüksek boyutlu dosyaları upload ederken, hız konusunda herhangi bir sıkıntı yaşanmayacaktır. Ek açıklama: Custom window-da dosya upload ederken, sonlandırmak için pencereyi kapatın veya Pause/Break tuşuna basın. Kullanım şekli: /sendfile <d(ialog)|c(ommand)> <address> <username> <password> <dizin> <port> Dialog için: /sendfile d Pencere için: /sendfile c <address> <username> <password> <dizin> <port> Pencere örnek: /sendfile c mircscripting.net kullanıcı_adım şifrem /www 21 Dialog menüsü resmi: ![]() Custom window resmi: ![]() - Kod: ;-----------------------------------------------------------------------------------
;FTP upload v0.2a
;l4roxyl code series - 2011,,.
;date: 20/11/2011
;use: /sendfile <d(ialog)|c(ommand)> <address> <username> <password> <dizin> <port>
;-----------------------------------------------------------------------------------
;started code
alias -l _input $iif($input($1-,wo,Hata) = $true,,) | dialog -v ftp_ | halt
alias _did $iif($dialog(ftp_),did -ra ftp_ 15,$iif($window(@ftp_upload),aline -c2 $v1 +++)) $1-
alias _len if ($len($1-) >= 20) { return $left($1-,20) $+ .. } | else return $1-
alias _did2 if ($dialog(ftp_)) did - $+ $1 ftp_ 5-9,13,14
alias _file_byte {
var %_. = $file($1).size
if (%_. < 1048576) return 9182
if (%_. > 1048576 && %_. < 3145728) return 18364
if (%_. > 3145728) return 55092
}
on *:keydown:@ftp_upload:*: {
if ($keyval = 19) {
$iif($sock(ftp),sockclose ftp)
$iif($sock(ftp2),sockclose ftp2)
$iif($hget(_ftp),hfree _ftp)
unset %_sfile
window -c $target
}
}
on *:load: {
var %e = echo -ac info +++
%e FTP Upload v0.2a yüklendi.
%e Kullanım: /sendfile <d(ialog)|c(ommand)> <address> <username> <password> <dizin> <port>
%e Dialog için: /sendfile d
%e Pencere için: /sendfile c <address> <username> <password> <dizin> <port>
%e Pencere örnek: /sendfile c mircscripting.net kullanıcı_adım şifrem /public_ftp 21
linesep
%e l4roxyl(Hasan AYDENİZ) - http://www.mIRCScripting.net - 20/11/2011
}
on *:close:@ftp_upload: {
$iif($sock(ftp),sockclose ftp)
$iif($sock(ftp2),sockclose ftp2)
$iif($hget(_ftp),hfree _ftp)
unset %_sfile
}
menu status,menubar {
FTP Upload v0.2a
.Run: if ($dialog(ftp_)) return | sendfile d
.About:echo -aec info +++ l4roxyl(Hasan AYDENİZ) - http://www.mircscripting.net - 20/11/2011
}
dialog -l ftp_ {
title "FTP Upload"
size -1 -1 94 117
option dbu
text "FTP Adresi:", 1, 5 7 34 8
text "Kullanıcı Adı:", 2, 5 17 34 8
text "Şifre/login:", 3, 5 27 34 8
text "Port(21):", 4, 5 37 34 8
edit "", 5, 41 6 50 10, autohs
edit "", 6, 41 16 50 10
edit "", 7, 41 26 50 10, pass
edit "", 8, 41 36 50 10
button "Gönderilecek Dosyayı Seç", 9, 4 47 86 10, flat
text "", 10, 4 60 86 8, center
text "Hedef Klasör:", 12, 5 71 34 8
edit "", 13, 41 70 50 10
button "Karşıya Yükle", 14, 4 82 86 10, flat
text "", 15, 4 106 86 8, center
button "İptal", 16, 4 94 86 10, flat
}
alias sendfile {
if (!$1) {
echo -aec info +++ Err: /sendfile <d(ialog)|c(ommand)> <address> <username> <password> [port]
return
}
if ($sock(ftp)) sockclose ftp
if ($sock(ftp2)) sockclose ftp2
if ($1 = d) $iif(!$dialog(ftp_),dialog -mdi ftp_ ftp_,_input Dialog zaten açık.)
if ($1 = c) {
if (!$6) {
$iif($dialog(_ftp),dialog -c _ftp)
echo -aec info +++ Err: /sendfile <d(ialog)|c(ommand)> <address> <username> <password> <dizin> <port>
return
}
$iif(!$window(@ftp_upload),window -aCldk0 +l @ftp_upload -1 -1 300 300)
$iif($window(@ftp_upload),clear $v1)
$iif($dialog(ftp_),dialog -c $v1 $v1)
%_sfile = $sfile($mircdir,Gönderilecek dosyayı seç,Seç)
if (!%_sfile) {
if ($window(@ftp_upload)) aline -c2 @ftp_upload Gönderilecek dosya seçilmedi.
return
}
else {
sockopen ftp $2 $iif($6,$6,21)
var %_h = hadd -m _ftp
%_h _user $3
%_h _pass $4
%_h _file $shortfn(%_sfile)
%_h dir $iif($5,$5,/)
}
}
}
on *:dialog:ftp_:*:*: {
if ($devent = close) {
$iif($sock(ftp),sockclose ftp)
$iif($sock(ftp2),sockclose ftp2)
$iif($hget(_ftp),hfree _ftp)
unset %_sfile
}
if ($devent = init) {
$iif($window(@ftp_upload),window -c $v1)
did -a $dname 10 Gönderilecek dosya seçilmedi.
did -a $dname 15 Durum: Aktarım yok.
did -a $dname 8 21
}
if ($devent = sclick) {
if ($did = 16) {
$iif($sock(ftp),sockclose ftp)
$iif($sock(ftp2),sockclose ftp2)
$iif($hget(_ftp),hfree _ftp)
_did2 b
dialog -c ftp_ ftp_
}
if ($did = 9) {
%_sfile = $sfile($mircdir,Gönderilecek dosyayı seç,Seç)
if (!%_sfile) {
did -a $dname 10 Gönderilecek dosya seçilmedi.
return
}
else did -ra $dname 10 Dosya: $_len($nopath(%_sfile))
}
if ($did = 14) {
if (!$did($dname,5)) _input Adresi giriniz. $crlf $+ Örnek: mircscripting.net
if (!$did($dname,6)) _input Kullanıcı adını girin.
if (!$did($dname,7)) _input Şifre girin.
if (!$did($dname,8)) {
hadd -m _ftp port 21
did -a $dname 8 21
}
else {
if ($did($dname,8) !isnum) _input Port sadece rakamdan oluşur. $crlf $+ Örneğin: FTP için 21
}
if (!$did($dname,13)) _input Hedef klasör seçin. $crlf $+ Örnek: /www - /public_ftp - Anadizin için: /
if (!%_sfile) _input Gönderilecek dosyayı seçin.
if (%_sfile && $did($dname,5) && $did($dname,6) && $did($dname,7) && $did($dname,8) && $did($dname,13)) {
$iif($sock(ftp),sockclose ftp)
$iif($sock(ftp2),sockclose ftp2)
$iif($hget(_ftp),hfree _ftp)
hadd -m _ftp _file $shortfn(%_sfile)
hadd -m _ftp address $did($dname,5)
hadd -m _ftp _user $did($dname,6)
hadd -m _ftp _pass $did($dname,7)
hadd -m _ftp port $did($dname,8)
hadd -m _ftp dir $did($dname,13)
sockopen ftp $hget(_ftp,address) $iif($hget(_ftp,port),$v1,21)
did -ra $dname 15 Durum: Bağlantı kuruluyor..
_did2 b
}
}
}
}
on *:sockopen:ftp: {
if ($sockerr) {
_did Durum: Bağlantı başarısız.
_did2 e
return
}
}
on *:sockread:ftp: {
if ($sockerr) {
_did2 e
_did Bağlantı başarısız.
return
}
sockread %_data
while ($sockbr) {
var %_raw = $token(%_data,1,32)
if (%_raw = 220) {
sockwrite -n $sockname user $hget(_ftp,_user)
_did Kullanıcı adı girildi.
}
if (%_raw = 331) {
sockwrite -n $sockname pass $hget(_ftp,_pass)
_did Şifre girildi, bekleniyor..
}
if (%_raw = 230) {
sockwrite -n $sockname TYPE I
_did Bağlantı doğrulandı.
}
if (%_raw = 200) sockwrite -n $sockname PASV
if (%_raw = 227) {
_did Pasif moda geçildi.
var %s = $remove($token(%_data,-1,32),$chr(40),$chr(41))
var %port = $token(%_data,5,44), %port2 = $token(%_data,6,44)
var %port3 = $calc((%port * 2^8) + %port2)
var %s = $replace($token(%s,1-4,44),$chr(44),$chr(46))
sockopen ftp2 %s %port3
sockwrite -n $sockname CWD $iif($hget(_ftp,dir),$v1,/)
}
if (%_raw = 250) {
sockwrite -n $sockname STOR $nopath($longfn($hget(_ftp,_file)))
_did Dizin seçildi: $token(%_data,-1,32)
if ($window(@ftp_upload)) {
aline -c2 $v1 +++ Dosya: $_len($nopath(%_sfile)) / $bytes($file(%_sfile).size).suf
}
}
if (%_raw = 150) {
_did Veri gönderme kabul edildi.
%=t = $ctime
var %_pos = 0, %file = $hget(_ftp,_file)
bread %file %_pos $_file_byte(%file) &_file
sockwrite ftp2 &_file
hadd -m pos pos $calc(%pos + $bvar(&_file,0))
}
if (%_raw = 530) {
_did Kimlik doğrulama başarısız.
_did2 e
.timer 1 2 _did Bağlantılar koparıldı.
}
if (%_raw = 226) {
_did Dosya yüklendi.
_did Yüklenme süresi: $duration($calc($ctime - %=t),3)
_did2 e
$iif($hget(_ftp),hfree $v1)
}
if (%_raw = 221) .timer 1 2 _did Çıkış yapıldı.
sockread %_data
}
if (%_raw = 550) {
_did Dizin bulunamadı.
_did2 e
$iif($sock(ftp),sockclose ftp)
$iif($sock(ftp2),sockclose ftp2)
_did Bağlantı koparıldı.
}
}
on *:sockwrite:ftp2:{
if ($sockerr) {
_did Aktarımda sorun oluştu.
_did2 e
return
}
var %_pos = $hget(pos,pos), %_file = $hget(_ftp,_file)
var %_p1 = $+(%,$round($calc((%_pos * 100)/ $file(%_file).size),1))
var %_s = $bytes(%_pos,3).suf / $bytes($file(%_file).size,3).suf
if ($dialog(ftp_)) did -ra ftp_ 15 Yük.. ( $+ %_p1 $+ ) - %_s
if ($window(@ftp_upload)) {
var %l = $line($v1,0) - 1
rline -c2 $v1 $calc(%l +1) ++++ Yük.. ( $+ %_p1 $+ ) - %_s
}
if (%_pos < $file(%_file).size) {
bread %_file %_pos $_file_byte(%_file) &_file
sockwrite $sockname &_file
hadd -m pos pos $calc(%_pos + $bvar(&_file,0))
}
else {
sockclose $sockname
sockwrite -n ftp QUIT
}
} Not: İleriki zamanlarda FTP socket bağlantıları hakkında geniş bir ders yazabilirim vaktim olursa. Not2: Bu kod işlev yapma amacı ile yazıldığından herhangi bir görsellik öğesi aramamanız tavsiye edilir. Not3: Birden fazla karmaşık veri işleyicileri ile yazıldığından, editleme yapmanız tavsiye edilmez. Aksi taktirde kodu bozabilirsiniz. (normalde editlemeniz beni ilgilendirmez)
__________________ C/co/cod/code^man. |
| Sponsored Links |
|
#3
| ||||
| ||||
|
Merhaba, pencere sisteminde hata mevcut. Kullanici adi olarak @domain.org seklinde tam uzanti eklenmeli aksi durumda baglanti saglanmiyor. Suan @domain de kaliyor ve baglanti kurulamiyor. Ornek resimdeki gibi sadece kullanici adi ile baglanti kurulamaz. |
|
#4
| ||||
| ||||
|
Mesajimi duzenleme zamani gecti sanirim :x Kullanim sekli olan /sendfile <d(ialog)|c(ommand)> <address> <username> <password> <dizin> <port> Yerine /sendfile <d(ialog)|c(ommand)> <address> <username> <password> <dizin> <port> <filename> ile dosyayida eklemek iyi bir yol olabilir. |
|
#5
| ||||
| ||||
|
Herhangi bir hata yok. Ben hatalı veya çalışmasında problem olan bir kod yayımlamam. Sen kodu düzgün kullanırsan herhangi bir bağlantı sorunu yaşamazsın. Adresini, şifreni vb. bilgilerini doğru gireceksin ki bağlanabilesin. Yapay zeka bir kod değil ki bu. Hı yazılabilirmi? Evet. Ama profesyonel kullanıma yönelik olduğu için gerek duymadım. Yoksa basit 2-3 if sorgusu ile adres doğruluğu kontrol ettirilebilir. Ek olarak diğer önerine gelince ise, sen dosyayı <filename> kısmında belirtsen dahi aranması gereken bir dizin olmalı değilmi? Direk dosya ismini girdiğinde mirc ana klasörü ($mircdir) içerisinde arayacaktır. Bulunamazsa herhangi bir işlem olmayacaktır. Dolayısıyla dediğin mantıksız. Gönderilmek istenen dosyayı her program veya programcık-da olduğu gibi sfile/msfile vb. dizin belirleme seçenekleri ile select yapmak işin doğrusu olur. Ek açıklamalar; 13 yıllık internet aleminin verdiği sanal tecrübeye dayanarak kendine herhangi bir nick almanı veya en azından gerçek nickini kullanmanı tavsiye ederim. Benim forumumda bazı kurallar vardır. Bunları okumanı öneririm. Forumda ortaya birşey koymayan, sadece amaçsız eleştiri yapan kişileri pek barındırmam. Buraya global veya portal bir forum gözü ile bakma. Gayet disiplinli ve amacı sadece mIRC Scripting olan kullanıcıların bulunduğu bir forumdur. Bunu 3 senedir açık olmasına rağmen üye sayısının 300-küsür olmasından anlayabilirsin zaten. Bu uyarıyı sana direk olarak yapmamın sebebine gelecek olursak, senin için olan gözlemlerim sonucu diyebilirim.
__________________ C/co/cod/code^man. |
|
#6
| ||||
| ||||
|
Herkes hata yapabilir. Kodlamalari test edilip yorum veya elestiri yapmak, forumu forum yapan degil midir ? Dosya secme ise sadece bir oneri iken bu neden tepki goruyor ki ? Ek aciklamadan kasit nedir anlamadigim icin cevap vermiyorum. Yine de sanirim bir kac sorunlu oldugunuz kisiden biri sandiniz ise yaniliyorsunuz. |
|
#7
| ||||
| ||||
| Alıntı:
Alıntı:
Alıntı:
Alıntı:
__________________ C/co/cod/code^man. |
|
#9
| ||||
| ||||
|
Bence de yerinde bir karar. Lakin ben üyelik veya mesajları silmiyorum. Ama sana bir güzellik yapıp forumun ilk banlanan üyesi olmanı sağlamaktan büyük kuruntu duyuyorum.
__________________ C/co/cod/code^man. |
![]() |
| Etiketler |
| ftp, mırc ftp, upload, v02a |
| |
Benzer Konular | ||||
| Konu | Konuyu Başlatan | Forum | Cevaplar | Son Mesaj |
| Imageshack'e resim upload. | mS-Desk | Showcase - Hazır kodlar | 1 | 14 Ağustos 2009 16:30 |