Sana kısaca bir örnek vereyim. Altta örnek verdiğim kodu
Toprak yazmıştı eski bir kod, sadece mantığı anlaman için örnek gösteriyorum. (Kod içinde yeni eklenen kısımları koyu belirtiyorum.)
Kod:
alias ipal { .remove data.txt | sockclose ipal | sockopen ipal slyhold.com 80 | inc %a_ }
on *:sockopen:ipal:{ var %:ipal sockwrite -n $sockname | %:ipal GET /proxy_any_any.txt HTTP/1.1 | %:ipal Host: slyhold.com | %:ipal $crlf }
on *:sockread:ipal:{ var %ipal | sockread %ipal | .tokenize 32 %ipal | if $regex(ip1,%ipal,/^((\d+\.\d+\.\d+\.\d+)[\72]\d+$)/i) { if !$read(proxy.txt,w,$+(*,$regml(ip1,2),*)) { $iif(%a_ > 1, write data.txt $regml(ip1,2), write proxy.txt $regml(ip1,2)) } } }
on *:sockclose:ipal:{ sockclose ipal1 | sockopen ipal1 dan.me.uk 80 }
on *:sockopen:ipal1:{ var %:ipal1 sockwrite -n $sockname | %:ipal1 GET /torlist HTTP/1.1 | %:ipal1 Host: dan.me.uk | %:ipal1 $crlf }
on *:sockread:ipal1:{ var %ipal1 | sockread %ipal1 | .tokenize 32 %ipal1 | if $regex(ip2,%ipal1,/^((\d+\.\d+\.\d+\.\d+)[\72]\d+$)/i) { if !$read(proxy.txt,w,$+(*,$regml(ip2,2),*)) { $iif(%a_ > 1, write data.txt $regml(ip2,2), write proxy.txt $regml(ip2,2)) } } }
on *:sockclose:ipal1:{ sockclose ipal2 | sockopen ipal2 multiproxy.org 80 }
on *:sockopen:ipal2:{ var %:ipal2 sockwrite -n $sockname | %:ipal2 GET /txt_all/proxy.txt HTTP/1.1 | %:ipal2 Host: multiproxy.org | %:ipal2 $crlf }
on *:sockread:ipal2:{ var %ipal2 | sockread %ipal2 | .tokenize 32 %ipal2 | if $regex(ip3,%ipal2,/^((\d+\.\d+\.\d+\.\d+)[\72]\d+$)/i) { if !$read(proxy.txt,w,$+(*,$regml(ip3,2),*)) { $iif(%a_ > 1, write data.txt $regml(ip3,2), write proxy.txt $regml(ip3,2)) } } }
on *:sockclose:ipal2:{ sockclose ipal3 | sockopen ipal3 tubeincreaser.com 80 }
on *:sockopen:ipal3:{ var %:ipal3 sockwrite -n $sockname | %:ipal3 GET /proxylist.txt HTTP/1.1 | %:ipal3 Host: tubeincreaser.com | %:ipal3 $crlf }
on *:sockread:ipal3:{ var %ipal3 | sockread %ipal3 | .tokenize 32 %ipal3 | if $regex(ip4,%ipal3,/^((\d+\.\d+\.\d+\.\d+)[\72]\d+$)/i) { if !$read(proxy.txt,w,$+(*,$regml(ip4,2),*)) { $iif(%a_ > 1, write data.txt $regml(ip4,2), write proxy.txt $regml(ip4,2)) } } }
on *:sockclose:ipal3:{ echo -a Proxy list güncellendi4 $lines(proxy.txt) ip mevcut. $iif($isfile(data.txt),:- Data da ise $lines(data.txt) IP var.) } 1-)
Proxy IP'leri kaçıncı defa çektirdiğini belirlemek için, proxy ip alımını başlatan alias'a inc ekleyip saydırıp belirleyebilirsin. Alttaki gibi;
Kod:
alias ipal { .remove data.txt | sockclose ipal | sockopen ipal slyhold.com 80 | inc %a_ } 2-)
Proxy.txt i sildirme sabit kalsın, kıyaslama için. Data.txt'i, alias ı başlattığında kaldırmalısın. Çünkü proxy.txt ile karşılaştırıp varsa yeni ipleri eklemesi için. Alttaki gibi;
Kod:
alias ipal { .remove data.txt | sockclose ipal | sockopen 3-)
Eğer ip çekme komutunu 1 kereden fazla uygulamışsan; sabit olan proxy.txt içerisinde bulunan ip adreslerinin dışında ip varsa, silinip yeniden oluşturulan data.txt içine yazdır, koşulu oluşturmalısın. Alttaki gibi;
Kod:
if !$read(proxy.txt,w,$+(*,$regml(ip1,2),*)) { $iif(%a_ > 1, write data.txt $regml(ip1,2), write proxy.txt $regml(ip1,2)) } } } 4-)
data.txt içerisine kaç yeni proxy ip eklendi görmek içinde son bölüme şunu ekleyebilirsin.
Kod:
on *:sockclose:ipal3:{ echo -a Proxy list güncellendi4 $lines(proxy.txt) ip mevcut. $iif($isfile(data.txt),:- Data da ise $lines(data.txt) IP var.) } Not:Elinde bulunan koda bu veya buna benzer bir mantıkla entegrasyon yapabilirsin. Mantığı dilediğin gibi geliştirebilirsin. Farklı fikirleri olan arkadaşlarda konu altına fikirlerini belirtirlerse senin için daha faydalı olacağına inanıyorum.
Not2: Play komutuna bağlı işlem yaptırmak istersen(okuma bitiminde dosya sildirme veya herhangi başka bir tetikleme/işlem yaptırmakla ilgili..)
playend event'ını incelemeni öneririm.
Bknz: /help on playend Şahsi fikrim: Proxy ip'leri çok sık değişen/güncellenen bir sistem. Bana sorarsan Proxy.txt dosyasını belirli günlerde(çok uzun süre olmamak şartıyla) sildirip yeniden ip aktarımı yapmandır. Tabi bunu yaparken
inc ile saydırdığın değişkenide(
%a_) temizlemen lazım. Script kapandığında oto temizlensin istersen
inc -e %a_ yapabilirsin veya manuel olarak
unset %a_ gibi.. Umarım fikirler güzel bir mantık üretmene yardımcı olur.
İyi forumlar.