İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Web Programlama (PHP, ASP, HTML, CSS, JavaScript)
Web Programlama (PHP, ASP, HTML, CSS, JavaScript)

PHP IP Kontrolü

emreokan31.01.201313 cevap2.402 görüntüleme
2013'den beri3 mesaj
#1
Benim bir web browser oyunum var ve aynı ipden birden fazla hesap açıldığında veya birden fazla hesapla giriş yaptığında banlanmasını veya sayfayı görememesini istiyorum.

Mysql tr1_login_log diye bir tablom var girişlerde otomatik ip ve girdiği user id (uid) alıyor.


Resimdede görebileceğiniz üzere 78.163.34.55 numaralı ip bir çok hesaba giriş yapmış.
Buna göre nasıl bir kod gerekli giriş sayfasında kontrol yapmak için? Banlanması için tr1_users diye bir tablom daha var orada uid e göre access 2 (kullanıcı) 0 (banlanmış) diye otomatik değiştirilmesi gerek.

Yardımlarınız bekliyorum, şimdiden teşekkür ederim.
Cevaplar
2007'den beri2.589 mesaj
#2
Bu kullanıcının internet cafe kullanıcısı olmadığı ne malum ?
Bir switch ya da modem'in arkasından gelen herkes o switch'in ekstra bir config yapılmaması durumunda external ip'sini kullanacaktır.
Yani IP'ye sahip kişiler aynı olmayabilir. Belki de aynı ortamı paylaşıyorlardır.

Aynı kişi olup olmadıklarını anlamak için biraz daha detaylı bir log kullanman gerekebilir. Hatta o bile yetmeyebilir.
2011'den beri597 mesaj
#3
annttiigs dedi: ↑
Bu kullanıcının internet cafe kullanıcısı olmadığı ne malum ?
Bir switch ya da modem'in arkasından gelen herkes o switch'in ekstra bir config yapılmaması durumunda external ip'sini kullanacaktır.
Yani IP'ye sahip kişiler aynı olmayabilir. Belki de aynı ortamı paylaşıyorlardır.

Aynı kişi olup olmadıklarını anlamak için biraz daha detaylı bir log kullanman gerekebilir. Hatta o bile yetmeyebilir.
kesinlikle, henüz aynı pc den gelen verilerin kayıtlayıp analiz etmeden ayırt edemiyorken bi çok sistem, valla iyi cesaret sen yorgan yakıyorsun. :D
Misafir
#4
Arkadaşlar aynı ipden 1den fazla oyuncu oynasın istemiyorum. İster internet cafe olsun ister aynı bilgisayar.. Yardım edebilecekseniz mesaj yazın lütfen.
2007'den beri2.589 mesaj
#5
yine de dersen ki. yok arkadaş ben kesin siliyorum bu adamları diye; 2 tane select ( distinc ve count içeren ) bir tane de update lazım olacak gibi.
emreokan Konuyu açan
2013'den beri3 mesaj
#6
annttiigs dedi: ↑
yine de dersen ki. yok arkadaş ben kesin siliyorum bu adamları diye; 2 tane select ( distinc ve count içeren ) bir tane de update lazım olacak gibi.
Yardımcı olabilir misin?
2007'den beri2.589 mesaj
#7
select count(distinct uid) from login_table where ip = .....; bu sql sonucunu fetch edip değeri count'a attığını varsay.

if(count > 1 ) then
update user_table set login = 2 where uid in (select uid from login_table where ip = ... )
else
allow_user.

gibi bir şey olur zannımca.

not : login field'i user_table'de banlı mı değil mi kontrolü için kullanılmıştır. sen kendi field name'lere göre oraları düzenlemelisin.
emreokan Konuyu açan
2013'den beri3 mesaj
#8
Daha açıklayıcı olarak yardım edecek vamrı?
2011'den beri597 mesaj
#9
Adam daha ne desin anlamadım, sen online oyuna sahipsin, böyle birde veri tabanına ve hala anlamadın mı ?
Hayır mantık basit, kullanıcıların mail adreslerinin sayısı yani eşlemeleri denetlenicek, eşleşen adresdeki hesaplar devre dışı bırakılacak...
10 puanlık uzmanlık sorusu olmaz bundan be. :@
2011'den beri597 mesaj
#10
sen burda kullanıcıları oturum numarasıyla da denetleyip ip eşleşmelerini devre dışı bırakabilirsin.
2012'den beri400 mesaj
#11
Modemi resetlerse ne olacak? IP değiştirecek...

Çak bir tane cookie ve onu kontrol ettir. Tarayıcı verilerini temizlemedikçe(uyanık değilse) cookie de bir userid tutarsın ve kontrol edersin.

Ya da daha iyisi flash ile basit bir kod yazarsın flashın da kendine benzer cookie mantığı var. SharedObjects diye. Flash ı gizlersin sayfanda üye olur flash a parametre atarsın userid yi üye olduktan sonra flashparams ile o userid alınır sharedobjects de kaydedilir ve cookileri temizlese bile -flashın temizlemesi daha dertlidir- senin sitene üye olamaz.

flash kapalıysa yada banlıysa otomatikman flash yok üye olamazsın der geçersin. bak o zaman multiuser alabiliyor mu...
2008'den beri1.572 mesaj
#12
Hiç php bilgin yok yardım istiyorsun. Adam neredeyse kodun tamamını yazmış vermiş hala yardım diye mesaj atıyorsun.
Ayrıca, doğru düzgün hesabın ile mesaj yazsana. Diğer mesajları neden misafir olarak yazıyorsun.

Kim ne yazdı belli olmuyor. Bu misafir olayı nereden çıktı bilmiyorum zaten. Açıklandığı bir konu var mı?
2007'den beri2.589 mesaj
#13
arkadaşa özel mesaj yolu ile de bildirdim. Prensip gereği oturup da kodu editörde yazıp vermiyorum. Elinde bir parça kodun olur onun bir kısmını yazmışsındır. Takıldığın bir algoritmik ya da syntax açısından bir sıkıntıyı soruyorsundur; o zaman yardım ederiz kod da yazarız. Ama gelip burada oyun sitem var, tablolarım da şu ( ki tablo ismi falan da gayet iyi planlanmış belli ki ) diyorsun. Sonra iki tane sql sorgusunu yazamıyorsan sana ben oturup da kod yazamam.

Bu yorum Biraz sert bir mizaç ile yazılmış olsa da kesinlikle arkadaşın iyiliği için yazılmıştır.
2010'den beri9 mesaj
#14
select count(distinct uid) from login_table where ip = .....; bu sql sonucunu fetch edip değeri count'a attığını varsay. " if(count > 1 ) then update user_table set login = 2 where uid in (select uid from login_table where ip = ... ) else allow_user. gibi bir şey olur zannımca.
not : login field'i user_table'de banlı mı değil mi kontrolü için kullanılmıştır. sen kendi field name'lere göre oraları düzenlemelisin.
PHP KONTROL panel örneklerini incele kendin sanki biraz eksik var ama yinede kullanıcı F5 e basmazsa dediğin olur. biraz azim.. daha araştır daha araştır.


bulduğun çözdüğünde ben çözdüm diyebilmen için" Ç)

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.