Play Framework lie karşı tarafın port numarasını almak mümkün mü?

15 views
Skip to first unread message

Serdar Coşkun

unread,
Apr 10, 2014, 3:54:08 AM4/10/14
to play-fra...@googlegroups.com
Merhaba, 

Çalışmakta olan projemde bir merkez sunucu ve ona bağlı birçok farklı sunucu var. Bu sunucular günde bir kez merkez sunucu ile kendilerini senkronize edip bilgilerini güncelliyorlar.. 
Mevcut durumda kullanıcının durumuna göre kullanıcı uygulamaları birçok farklı port numarasından bağlantı kurabiliyor. 

Ben şimdiiye kadar kullanıcıların ip adreslerini aşağıdaki şekilde alıyordum: 

(Server uygulaması deploy edildiğinde heroku üzerinde çalıştığından normalde remoteAdress parametresiyle aldığım cevabı “x-forwarded-for” header’ı ile alıyorum.) 

String ipadress = null;
if(Request.current().headers.get("x-forwarded-for")!=null)
ipadress = Request.current().headers.get("x-forwarded-for").toString();
if(ipadress==null||ipadress.isEmpty())
ipadress = Http.Request.current.get().remoteAddress;


Benim yapmak istediğim ise mesela kullanıcı lokalinde hangi porttan dışarıya bilgi gönderdiğini bulabilmek. Acaba bu mümkün müdür? Bu sayede ben de sistmeimde ip.adresi:port şeklinde bir kayıt tutmak istiyorum. 

Şimdiden teşekkürler...

Can Bican

unread,
Apr 11, 2014, 7:19:46 AM4/11/14
to play-fra...@googlegroups.com
Merhaba,

Eğer bu bağlantıları indekslemek için kullanılacaksa, eksik bir yöntem olur. Arada proxy olduğundan dolayı, zaten client'ın bağlantı portu bilgisi orada kalır, proxy'den uygulamaya geçerken kaybolur. Proxy'den gelen isteğin port bilgisini aldık diyelim, o zaman da şöyle bir şey var: İstemci her an farklı bir porttan aynı session (ya da source ip) adına bağlantı kurabilir. En uygun use case belki de keep-alive bağlantıdaki bağlantıları izlemek olabilir ki sanırım Play gibi frameworkler biz bu ve buna benzer şeylerle ilgilenmeyelim diye yazılmış :)

Bunların hepsi de olurumuz diyelim, o noktada da anladığım kadarıyla Play controller'a sadece Request'teki bilgileri yönlendiriyor ve altındaki bağlantıyla ilgili sınıfları da göstermiyor.

Yani Play açısından bir çıkar yol göremedim, aksi gibi kullanım amacını da tahmin edemedim :)

İyi çalışmalar,



--
Can Bican


--
Bu iletiyi Google Grupları'ndaki "Play Framework Türkiye" grubuna abone olduğunuz için aldınız.
Bu grubun aboneliğinden çıkmak ve bu gruptan artık e-posta almamak için play-framework...@googlegroups.com adresine e-posta gönderin.
Daha fazla seçenek için https://groups.google.com/d/optout adresini ziyaret edin.

Serdar Coşkun

unread,
Apr 11, 2014, 7:25:01 AM4/11/14
to play-fra...@googlegroups.com
Merhaba hocam, 

Aslında amacım tam olarak ip adresi:port bilgilerini sistemde saklayıp, gerektiğinde kullanıcıların bilgisayarlarında çalışan client uygulamalarının web admin arayüzlerine ulaşabilmek... Birçok kullanıcının port numaraları birbirinden farklı, ve bu sebepten ötürü bağlanmak gerektiğinde illaki teamviewer gibi programlarla adamların bilgisayarından bağlanıp bu port numaralarını öğrenmemiz gerekiyor. 

Ben en iyisi client tarafını güncelleyim, kullanıcı clientları sunucu ile senkronizasyon yaparken keni port numaralarını kedileri göndersin, daha kolay olacak anladığım kadarıyla :)

İyi Çalışmalar..
Reply all
Reply to author
Forward
0 new messages