Anlık Değişen Verileri Çekme Hakkında
-
coder2 bunu yazdıend bunu yazdıCevdet bunu yazdı
Veya hiç nodeJS konusunu katmadan halledelim
Bu sefer de ajax ile gonderdik localhostuna, çalışması için sayfada jquerı olması gerekir. Jquerısiz sayfa kaldı mı? olmadı AngulaJS. Hiç olmadı direk Javascripthocalar bu anlık güncelleme hiçlikten gelmiyor ya, güncellemeyi sağlayan dosyaya req attırılsa ya?
Ban yiyecek olsak bizim de ban yememiz gerekir kullanıcı olarak. Sonuçta sürekli arkada istek atıyoruz güncel kalmak için?
Hocam genelde json formatında veri dönderen bir sayfa oluyor ve veriyi oradan alıp işliyor adamlar. Dediğin gibi değer döndüren sayfaya sürekli request atınca flood olarak algılayıp ip ban atıyor. Bunu ya yazılımsal olarakda yapmış olabilirler yada server flood koruması devreye giriyordur.
E ayni adrese browser'dan baglanirken biz de surekli req atiyoruz, bizi niye banlamiyor diyorum hocam.
-
end bunu yazdıcoder2 bunu yazdıend bunu yazdıCevdet bunu yazdı
Veya hiç nodeJS konusunu katmadan halledelim
Bu sefer de ajax ile gonderdik localhostuna, çalışması için sayfada jquerı olması gerekir. Jquerısiz sayfa kaldı mı? olmadı AngulaJS. Hiç olmadı direk Javascripthocalar bu anlık güncelleme hiçlikten gelmiyor ya, güncellemeyi sağlayan dosyaya req attırılsa ya?
Ban yiyecek olsak bizim de ban yememiz gerekir kullanıcı olarak. Sonuçta sürekli arkada istek atıyoruz güncel kalmak için?
Hocam genelde json formatında veri dönderen bir sayfa oluyor ve veriyi oradan alıp işliyor adamlar. Dediğin gibi değer döndüren sayfaya sürekli request atınca flood olarak algılayıp ip ban atıyor. Bunu ya yazılımsal olarakda yapmış olabilirler yada server flood koruması devreye giriyordur.
E ayni adrese browser'dan baglanirken biz de surekli req atiyoruz, bizi niye banlamiyor diyorum hocam.
saniyede 10 tane 100 tane 1000 tane requesti browser dan atabiliyor musun? burada sanirim arkadas onu demek istemistir, sürekliden kasti kisa araliklarla istek gönderme. Büyük ihtimalle cogu site ip yi banlar, captcha cikarir vs.
konuya gelince, bu olaya ajax pooling deniyor, ajax kullanabilirsin veritabaki icin ancak daha yeni yaklasimlar kullanabilirsin. mesela SignalR bu is icin uygun her ne kadar asp.net icin real time web fonksiyonlari dense de masaüstü icin uygulamalar mümkün. Mantiken de, anlik olarak request atmak yerine, servise subscribe olup, degisimlerde metodun tetiklenmesidir.
Request bazli da yapilabilir (banlanmadan) ama bu yola girmek pek mantikli degil bence. Ajax pooling olayini arastirip cözebilirsin
-
unbalanced bunu yazdıend bunu yazdıcoder2 bunu yazdıend bunu yazdıCevdet bunu yazdı
saniyede 10 tane 100 tane 1000 tane requesti browser dan atabiliyor musun? burada sanirim arkadas onu demek istemistir, sürekliden kasti kisa araliklarla istek gönderme. Büyük ihtimalle cogu site ip yi banlar, captcha cikarir vs.
konuya gelince, bu olaya ajax pooling deniyor, ajax kullanabilirsin veritabaki icin ancak daha yeni yaklasimlar kullanabilirsin. mesela SignalR bu is icin uygun her ne kadar asp.net icin real time web fonksiyonlari dense de masaüstü icin uygulamalar mümkün. Mantiken de, anlik olarak request atmak yerine, servise subscribe olup, degisimlerde metodun tetiklenmesidir.
Request bazli da yapilabilir (banlanmadan) ama bu yola girmek pek mantikli degil bence. Ajax pooling olayini arastirip cözebilirsin
C# istiyorsan Unbalanced'in de dediği gibi SignalR ile her türlü çözeceksin. Veri iletimi çok daha hızlı. Ajax gibi değil. Ajax pooling ile de halledebilirsin ama bunlara hiç gerek yok. Git direkt olarak bir socket ile hallet bunu.
Php için Racthet
JavaScript için Node.js/Socket.io
C için istiyorsan payden websoc diye arat bulursun. Client için hangisi uygun görüyorsan onu kullan .
WebSocket ile veri iletimi çok daha kolay ve çok daha hızlı .Oturum yönetimini vs de yapabilirsin. Ek olarak. Data kaybı asla yşanmaz. Örneğin ajax ile sürekli olarak VT sorgulamak yerine . Socket ile gelmeyen datayı sorgulmak daha mantıklı. Socket içerisnde bunun kontrolünü yaparsın.Veritabanını sürekli sorguya çekmek sistem'i şişirecektir. Daha önce yaşadığım sorun çünkü.
Veri kayıt edildi ise Veriyi bir değişkene al sunucu tarafında. Yeni kayıt edilen veriyi gönder. Gidip de milyonlarca data içeriisnden 3-5 veriyi arama.
-
@end hocam dediğini anladım ama nedenini bilmiyorum şahsen. Siteye saatlerce bağlı kalsam da sıkıntı yok ama 200-300 req atınca ban geliyor. request header de origin vs bölümlerinde site adresi yazıyor manüpüle etmek istediğimde değiştiremedim orasıyla ilgili birşey olabilir sanırım. Ayrıca büyük sitelerde socket.io vs kullanıyorlar onun hakkında detaylı bilgim olmadığı için birşey diyemiyorum.
@unbalanced hocam ajax pooling ile ilgili arama yaptım. setTimeout ile belirli aralıklarla sorguyu yineliyor. Esasen aradığım şey sorguyu tekrar tekrar atmaktansa js ile yeni veri attığında site onları yakalayıp almak. Böylece daha az ip kullanarak daha uzun süre verileri çekebilirim. Ben mi acaba yanlış düşünüyorum her defasında tekrar tekrar req atmak mı gerekiyor ?
@MhmdAlmz hocam daha önce yaşadığın sorunu nasıl çözdün ve örnek kod vs varsa paylaşırsan sevinirim.
-
coder2 bunu yazdı
@end hocam dediğini anladım ama nedenini bilmiyorum şahsen. Siteye saatlerce bağlı kalsam da sıkıntı yok ama 200-300 req atınca ban geliyor. request header de origin vs bölümlerinde site adresi yazıyor manüpüle etmek istediğimde değiştiremedim orasıyla ilgili birşey olabilir sanırım. Ayrıca büyük sitelerde socket.io vs kullanıyorlar onun hakkında detaylı bilgim olmadığı için birşey diyemiyorum.
@unbalanced hocam ajax pooling ile ilgili arama yaptım. setTimeout ile belirli aralıklarla sorguyu yineliyor. Esasen aradığım şey sorguyu tekrar tekrar atmaktansa js ile yeni veri attığında site onları yakalayıp almak. Böylece daha az ip kullanarak daha uzun süre verileri çekebilirim. Ben mi acaba yanlış düşünüyorum her defasında tekrar tekrar req atmak mı gerekiyor ?
@MhmdAlmz hocam daha önce yaşadığın sorunu nasıl çözdün ve örnek kod vs varsa paylaşırsan sevinirim.
Kodu paylaşmam mümkün değil ama basit bir örnek sunayım. 4 Top var bu 4 top u 4 android telefon gibi düşün. 4 ü de sürekli topun rengini değiştiriyor.
Bu değişiklikleri sen API ile VT ye update sorgusunu calıstırıp daha sonra bu top renklerini çeken client'a da select sorgusu ile 4 topun rengini çekiyorsun.
Bunun yerine şöyle düşün.
1.Android telefon maviye bastı. Android telefon maviye bastığı anda Android telefon direkt olarak renkleri çeken Client'a Ben Maviye bastım haberin olsun diye bir veri gönderiyor.
Arada VT var mı ? Yok .
Ihtiyaç varmı ? Yok.
Sen sadee veriyi kaydetmek istiyorsan VT ye kaydet. Daha sonra olur da Sunucuna birşey olursa tekrar renkleri Değişkene atarsın işlem tekrar devam eder.
Veritabanı sorgusu kalktı aradan.Direk Android telefon ile rengi çeken Client arasında bir köprü kurdun.
Performansın da çok iyi seviyelere yükseldi.
4 telefon da aynı anda rengi çeken Client'a köprü kurdu ve bu köprü aracılığı ile data gönderiyor.
-
Hazir konusunu bulmusken bendr sorayim . Bir sitenin pagesine post ile input gonderip dosyayi indirmeliyim.
Post (url) ile postu gonderdikten sonrw yeni olusacak urlyi nasil elde edebilirim ?
-
adamın siteyi tasarlayış tarzına, aldığı güvenlik önlemlerine dikkat etmeden
sadece işine yarayan kısmı çekmeye çalışırsan 1 request'te de ban yiyebilirsin, adamın insafına bağlı
tersten düşünürsen olayın mantığını anlarsın
sitem var, verilerim benim için değerli, çünkü verilere para veriyorum, reklam alıyorum
nasıl korurum
en basitinden sayfa dolaşma hızına limit koyarak başlarsın işe, belirli değerin üstüne çıkan (bir insan saniyede 20 sayfa dolaşabilir mi) kişileri banlarsın
daha sonra javascript ile destekler, kişiye has bilgileri paketleyip sunucuya belirli aralıklarla i'm alive / ping paketleri yollarsın
bunlar en basit örnekler, adamın uygulayacağı fantazilere bağlı zorluk artar
örneğin iddia'ya girdim, html kodunda 120 saniyede bir refresh kodu var meta tag
sen buna uyuyon mu ? hayır :D
ajax'tan da sadece işine yarayan kısmı alıondur, 3 tane paket geliyor 2-3 saniyede bir
ki bunlarda da If-None-Match ile değer değişti mi diye kontrol eden header'dan tut bir sürü farklı header var
ban yemek istemiyorsan kolaya kaçıp tarayıcı kullanacaksın, üstte verilen örnekteki gibi
ben yiğidoyum, atıma atlar tek başıma düşmanın anasını sikerim diyorsan da oturup adam debug eyleyeceksin
tarayıcının yaptığını birebir simule edeceksin