Uzaktan Oturum Açan Kullanıcının WAN IP Adresini Almak
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Uzaktan Oturum Açan Kullanıcının WAN IP Adresini Almak
Merhabalar ,
Uzak noktalardan windowsun uzak masa üstü özelliğinden yararlanılarak kullanılan bir programım var, yapmak istediğim şey uzaktan oturum açan kullanıcının WAN IP adresini öğrenmek.
Windows oturum bilgisinde bu bilgileri tutuyordur die düşündüm ve Windows SDK da araştırma yaparken WtsEnumerateSessions , WTSQuerySessionInformation ve WTSClientAddress apilerinin bana istediğimi verebileceğini düşündüm aşağıdaki örneği buldum;
http://www.remkoweijnen.nl/blog/2007/10 ... p-address/ bu adresteki örneği test ettiğimde, uzak makinaya bağlanan kullanıcının kendi yerel ağındaki yerel IP adresini verdiğini gördüm tabi işimi görmedi, bana uzak makinaya oturum açan kullanıcının WAN IP adresini elde edebileceğim bir yöntem önerebilecek arkadaşlara şimdiden teşekkürler.
İyi çalışmalar.
Uzak noktalardan windowsun uzak masa üstü özelliğinden yararlanılarak kullanılan bir programım var, yapmak istediğim şey uzaktan oturum açan kullanıcının WAN IP adresini öğrenmek.
Windows oturum bilgisinde bu bilgileri tutuyordur die düşündüm ve Windows SDK da araştırma yaparken WtsEnumerateSessions , WTSQuerySessionInformation ve WTSClientAddress apilerinin bana istediğimi verebileceğini düşündüm aşağıdaki örneği buldum;
http://www.remkoweijnen.nl/blog/2007/10 ... p-address/ bu adresteki örneği test ettiğimde, uzak makinaya bağlanan kullanıcının kendi yerel ağındaki yerel IP adresini verdiğini gördüm tabi işimi görmedi, bana uzak makinaya oturum açan kullanıcının WAN IP adresini elde edebileceğim bir yöntem önerebilecek arkadaşlara şimdiden teşekkürler.
İyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
Re: Uzaktan Oturum Açan Kullanıcının WAN IP Adresini Almak
Umarım yanlış anlamamışımdır.Burada bir yazılım var bakarmısınız.
http://www.mywanip.com/
Birde
http://wandering-ips.com/
http://www.mywanip.com/
Birde
http://wandering-ips.com/
Re: Uzaktan Oturum Açan Kullanıcının WAN IP Adresini Almak
Merhabalar ,
Yapmak istediğim şeyi biraz daha basit açıklamaya çalışayım ,
81.x.x.x nolu IP adresinde bir Windows 2003 Server bilgisayar var ve muhtelif windows kullanıcıları tanımlı halde bekliyor, en önemlisi bu bilgisayar üzerinde yüklü tarafımdan yazılmış bir uygulama var.
yapmak istediğim olay şu ;
diyelim ki 85.x.x.x nolu Public IP adresine sahip uzaktaki bir kullanıcı 81.x.x.x makinasına windowsun uzak masaüstü uygulamasıyla oturumu açıp benim programımı çalıştırdığı zaman ben yine aynı programın log sistemine işte şu saatte 85.x.x.x nolu IP den falanca isimli kullanıcı oturum açıp programa giriş yaptı demek istiyorum.
yukarıda yazdığım örnekte ise 85.x.x.x nolu Public IP ile oturum açan kullanıcın kendi yerel ağındaki (örn: 10.0.0.5) IP adresini elde edebiliyorum işimi görmüyor.
Yapmak istediğim şeyi biraz daha basit açıklamaya çalışayım ,
81.x.x.x nolu IP adresinde bir Windows 2003 Server bilgisayar var ve muhtelif windows kullanıcıları tanımlı halde bekliyor, en önemlisi bu bilgisayar üzerinde yüklü tarafımdan yazılmış bir uygulama var.
yapmak istediğim olay şu ;
diyelim ki 85.x.x.x nolu Public IP adresine sahip uzaktaki bir kullanıcı 81.x.x.x makinasına windowsun uzak masaüstü uygulamasıyla oturumu açıp benim programımı çalıştırdığı zaman ben yine aynı programın log sistemine işte şu saatte 85.x.x.x nolu IP den falanca isimli kullanıcı oturum açıp programa giriş yaptı demek istiyorum.
yukarıda yazdığım örnekte ise 85.x.x.x nolu Public IP ile oturum açan kullanıcın kendi yerel ağındaki (örn: 10.0.0.5) IP adresini elde edebiliyorum işimi görmüyor.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
Re: Uzaktan Oturum Açan Kullanıcının WAN IP Adresini Almak
Merhaba..
Ben benzeri işlemler için Normalde WebServices / WSDL erişimi kullanıyroum. Oturum açan bilgisayar programım ile direkt erişim sağlıyor. Bilgisayara herhangi bir web sunucu wb. kurulumu da gerekmiyor.
Sunucu bilgisayarda WebServisi kullanmak port yönlendirmek imkanım olamıyorsa, bu durumda -B Planı- olarak web üzerinde bir MySQL veritabanı LOG sistemi tasarladım onu kullanıyorum. Sistem basit. Bir MySQL veritabanı WEB ortamında herhangi bir hosting firmasında durmaktadır. Host bünyesine bir tane "r.php" gibi basit isimlendirilmiş raporlama görevi olan bir PHP bekler. Bu PHP, istemciler tarafından Web üzerinden POST edilen bilgileri SQL ile veritabanına yazar veya mevcut kayda update eder. Başka bir PHP parametresi ile de suncu bilgisayar tarafından periyodik olarak ( bu periyod örneğin 10 saniyede 1 olabilir ) günlük / saatlik listeyi okur ve içerik değerlendirilir.
EK : Unutmuşum PHP ile bunu yaparken IP'sini LOG tutmak için ile IP adresini direkt PHP'den alabilirsin.
Ben benzeri işlemler için Normalde WebServices / WSDL erişimi kullanıyroum. Oturum açan bilgisayar programım ile direkt erişim sağlıyor. Bilgisayara herhangi bir web sunucu wb. kurulumu da gerekmiyor.
Sunucu bilgisayarda WebServisi kullanmak port yönlendirmek imkanım olamıyorsa, bu durumda -B Planı- olarak web üzerinde bir MySQL veritabanı LOG sistemi tasarladım onu kullanıyorum. Sistem basit. Bir MySQL veritabanı WEB ortamında herhangi bir hosting firmasında durmaktadır. Host bünyesine bir tane "r.php" gibi basit isimlendirilmiş raporlama görevi olan bir PHP bekler. Bu PHP, istemciler tarafından Web üzerinden POST edilen bilgileri SQL ile veritabanına yazar veya mevcut kayda update eder. Başka bir PHP parametresi ile de suncu bilgisayar tarafından periyodik olarak ( bu periyod örneğin 10 saniyede 1 olabilir ) günlük / saatlik listeyi okur ve içerik değerlendirilir.
EK : Unutmuşum PHP ile bunu yaparken IP'sini LOG tutmak için
Kod: Tümünü seç
$domain = getenv('REMOTE_ADDR');
Re: Uzaktan Oturum Açan Kullanıcının WAN IP Adresini Almak
Merhaba sayın @mrmarman ,
ilginiz ve cevabınız için çok teşekkür ederim fakat maalesef sorunuma çözüm bulamadım, çok sade bir şekilde soruyu tekrar sormak istiyorum,
Diyelimki siz uzaktaki bir bilgisayara Windows Remote Desktop uygulamasıyla bağlanarak oturum açtınız ve kendi yazdığınız bir programı yine ilgili uzak makina üzerinde kullanmaya başladınız, bu uzak makina üzerindeki oturumda, oturum açan windows kullanıcısının hangi Public IP den geldiğini bulabilirmiyiz?
ilginiz ve cevabınız için çok teşekkür ederim fakat maalesef sorunuma çözüm bulamadım, çok sade bir şekilde soruyu tekrar sormak istiyorum,
Diyelimki siz uzaktaki bir bilgisayara Windows Remote Desktop uygulamasıyla bağlanarak oturum açtınız ve kendi yazdığınız bir programı yine ilgili uzak makina üzerinde kullanmaya başladınız, bu uzak makina üzerindeki oturumda, oturum açan windows kullanıcısının hangi Public IP den geldiğini bulabilirmiyiz?
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
Re: Uzaktan Oturum Açan Kullanıcının WAN IP Adresini Almak
Ben de aynı sadelikte cevap vereyim.
Sana bahsettiğim kodu kendi siteme koydum...
bu kod şimdilik şundan ibaret.
RemoteDesktop'dan kurduğun bilgisayarda bir explorer aç ve bu yukarda yazdığım adresi gir. Sana o uzak bilgisayarın WAN IP'sini ( LAN değil ) verir. İstediğin de zaten bu. Ben de diyorum ki bu PHP kodunu aşağıdaki gibi yazdığında ki ben öyle yapıyorum :
Bu kod ne yapıyor. Kendi yazdığım program çalıştırıldığında bir THREAD ile kullanıcı WEB'e Online mi değil mi kontrol ediliyor. Online ise POST metodu ile istediğim bilgiler bu PHP svriptine post ediliyor ve WEB ortamında bir MySQL tabloda tutuluyor. Yanında * (yıldız) olan Firma, YetkiliTC, Oturum Açmış Kullanıcı ve Veritabanı değerleri değişirse veritabanına INSERT ediliyor. Böylece yorumlayıcı değişiklikleri takip edilebiliyor. Aksi ise ilgili kayda konumlanıyor ve sadece UPDATE ediliyor. IP ve Tarih bilgisi direkt WEB sunucusundan elde ediliyor ki kullanıcı sistem tarihini değiştirse dahi tarih ve IP bilgisi benim kontrolümdeki bir yerden alınmadan direkt işleme konuyor.
Karar sana kalmış. Umarım açıklayıcı olmuştur.
Sana bahsettiğim kodu kendi siteme koydum...
Kod: Tümünü seç
http://www.armantr.com/php/ip.php
Kod: Tümünü seç
<?
$domain = getenv('REMOTE_ADDR');
echo $domain;
?>
Kod: Tümünü seç
<?
include("include.php");
// Post verileri alınıyor...
$form_bilgisi = ( isset($HTTP_POST_VARS ) ) ? $HTTP_POST_VARS : $HTTP_GET_VARS;
foreach ($form_bilgisi as $anahtar=>$deger ) {
if ( $anahtar == "a" ) { $a = $deger; } // Firma (*)
if ( $anahtar == "b" ) { $b = $deger; } // İl
if ( $anahtar == "c" ) { $c = $deger; } // ID
if ( $anahtar == "d" ) { $d = $deger; } // YekiliTC (*)
if ( $anahtar == "e" ) { $e = $deger; } // Prog Version
if ( $anahtar == "f" ) { $f = $deger; } // Oturum açmış Kullanıcı (*)
if ( $anahtar == "g" ) { $g = $deger; } // SeriNo
if ( $anahtar == "h" ) { $h = $deger; } // Lisans Durumu
if ( $anahtar == "j" ) { $j = $deger; } // Veritabanı (*)
if ( $anahtar == "k" ) { $k = $deger; } // eMail
if ( $anahtar == "l" ) { $l = $deger; } // Yazılım Dizini
if ( $anahtar == "m" ) { $m = $deger; } // Yazılım Caption
}
$domain = getenv('REMOTE_ADDR');
$sorgu = mysql_query("SELECT * FROM arman_log WHERE ( a = '$a' ) AND ( d = '$d') AND ( f = '$f' ) AND ( j = '$j') ");
$sayi = mysql_num_rows($sorgu);
$i = 0;
if( $sayi > 0 )
{ $kimlik = mysql_result($sorgu, $i,"sirano");
if ( @mysql_query( "UPDATE arman_log SET a = '$a', b = '$b', c = '$c', d = '$d', e = '$e', f = '$f', g = '$g', h = '$h', j = '$j', k = '$k', i = '$domain', t = now() WHERE sirano = $kimlik ") )
{ Print("ok_u\n"); }
else
{ Print("error_u\n"); }
} else
{ if ( @mysql_query("INSERT INTO arman_log (a, b, c, d, e, f, g, i, t, h, j, k) VALUES ( '$a', '$b', '$c', '$d', '$e', '$f', '$g', '$domain', now(), '$h', '$j', '$k')"))
{ Print("ok_i\n"); }
else
{ Print("error_i\n"); }
}
?>
Karar sana kalmış. Umarım açıklayıcı olmuştur.
Re: Uzaktan Oturum Açan Kullanıcının WAN IP Adresini Almak
Öncelikle ilginiz ve değerli zamanınızı ayırarak yapmış olduğunuz detaylı anlatımınız için çok teşekkür ederim anlattığınızı bir önceki mesajınızda da net bir şekilde anlamıştım,
fakat şöyle bir durum var, bir çok kullanıcı düşünün internet olan her hangi bir yerden (internet cafe ,ev , ofis vb..) remote desktop ile ana makinaya erişim sağlıyorlar, yani herhangi bir aracı yazılım ile erişim sağlamıyorlar, bağladıkları mekandaki local makine ile remote desktop uygulamasını çalıştırmak haricinde hiç biş işleri olmuyor, oturum açtığım ana makina ilgili PHP koduyla yada benzer yöntemle kendi internete çıkış IP sini veriyor, ben ilgili ana makinaya uzaktan gelen, örneğin internet cafeden bğalanan kullanıcının public IP sini yani internet cafenin internete çıkış IP sini almak istiyorum, istemci tarafında hiç bir ara uygulama yazmadan, sadece bağlandığım ana makina üzerinden bunu yapabilmem için tahminimce windows un oturum bilgilerini kullanmam gerekiyor bunları biyryerlerde tutuyordur die düşünüyorum topiğin en üstünde bahsettiğim yöntem uzak makinaya oturum açtığımda oturum bilgilerini bir çok detayı veriyor ama internet cafedeki bilgisayarın local IPsini veriyor, acaba bir yerlerinde felan WAN IP de tutuluyormudur?
fakat şöyle bir durum var, bir çok kullanıcı düşünün internet olan her hangi bir yerden (internet cafe ,ev , ofis vb..) remote desktop ile ana makinaya erişim sağlıyorlar, yani herhangi bir aracı yazılım ile erişim sağlamıyorlar, bağladıkları mekandaki local makine ile remote desktop uygulamasını çalıştırmak haricinde hiç biş işleri olmuyor, oturum açtığım ana makina ilgili PHP koduyla yada benzer yöntemle kendi internete çıkış IP sini veriyor, ben ilgili ana makinaya uzaktan gelen, örneğin internet cafeden bğalanan kullanıcının public IP sini yani internet cafenin internete çıkış IP sini almak istiyorum, istemci tarafında hiç bir ara uygulama yazmadan, sadece bağlandığım ana makina üzerinden bunu yapabilmem için tahminimce windows un oturum bilgilerini kullanmam gerekiyor bunları biyryerlerde tutuyordur die düşünüyorum topiğin en üstünde bahsettiğim yöntem uzak makinaya oturum açtığımda oturum bilgilerini bir çok detayı veriyor ama internet cafedeki bilgisayarın local IPsini veriyor, acaba bir yerlerinde felan WAN IP de tutuluyormudur?
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
Re: Uzaktan Oturum Açan Kullanıcının WAN IP Adresini Almak
hımm. Sorunu ters anlamışım kusura bakma ya..
Başlığı da meşgul etmiş oldum. Ben de bilmiyorum ama biraz google'da bakınır bulursam bişey yazarım. Hem ben de öğrenmiş olurum.
Bakacağım şey 3389 olan Remote Desktop portunu monitör eden bir çözüm.


Re: Uzaktan Oturum Açan Kullanıcının WAN IP Adresini Almak
Estağfirullah ,
İlgili uzak makinanın olay geçmişinde oturum açan uzak kullanıcının Public IP adresinin tutulduğunu gördüm ekte gönderiyorum, demekki bu bilgi windows oturum bilgisine ekleniyor ama bir türlü bulamadım.

İlgili uzak makinanın olay geçmişinde oturum açan uzak kullanıcının Public IP adresinin tutulduğunu gördüm ekte gönderiyorum, demekki bu bilgi windows oturum bilgisine ekleniyor ama bir türlü bulamadım.

Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
Re: Uzaktan Oturum Açan Kullanıcının WAN IP Adresini Almak
Şuna bir bakar mısın ?
Buradaki delphi kodu TCP portlarını dinleyip uzak IP'yi de gösteriyor.. İncelemeye değer.
Kod: Tümünü seç
http://www.kochini.com/dcomp/tcpmon/index.html
Re: Uzaktan Oturum Açan Kullanıcının WAN IP Adresini Almak
mrmarman yazdı:Şuna bir bakar mısın ?
Buradaki delphi kodu TCP portlarını dinleyip uzak IP'yi de gösteriyor.. İncelemeye değer.Kod: Tümünü seç
http://www.kochini.com/dcomp/tcpmon/index.html
Evet kesinlikle ve kesinlikle istediğime ulaştım ilgili örnek çok güzel anlatıyor,
Tekrar ilginiz ve desteğiniz için teşekkür ediyorum.
İyi çalışmalar dilerim.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
Re: Uzaktan Oturum Açan Kullanıcının WAN IP Adresini Almak
Flood gibi oldu ama bu seferlik beni mazur görün fazla vaktim yok bulduğum çözüm olabilecek detayı da ekleyim...
linkinde Remote Desktop services ile ilgili "How can I retrieve the client IP number?" sorusun cevabı olarak şöyle denmiş.
Kod: Tümünü seç
http://ts.veranoest.net/ts_faq_administration.htm#clientIP
Buradan da yola çıkarak WTSQuerySessionInformation ile yapılacak araştırma sonuca götürür ümidiyle... Uygun zamanda ben de kontrol edicem. Çünkü Vista'da RemoteDesktop için bir PATCH yapmak gerekiyor. İki bilgisayar yan yana gelinde onu yapar GPRS üzerinden remote yapıp IP'yi almaya çalışırım.Q: How can I retrieve the client IP number?
Last modified: August 2, 2009
A: You can retrieve the client IP number and computername with the WTSQuerySessionInformation function, or the client computername with the environment variable %CLIENTNAME%.
BUT: read this:
951422 - The WTSQuerySessionInformation function on a Windows Server 2008-based terminal server returns ambiguous IPv6 address data
970910 - A memory leak issue occurs if you call the WTSQuerySessionInformation function to query the published applications information or the initial program information for session ID 0
Or download GETTSCIP, a freeware command-line tool to obtain the current session's client IP address, from Ctrl-Alt-Del IT Consultancy.
Re: Uzaktan Oturum Açan Kullanıcının WAN IP Adresini Almak
Kod: Tümünü seç
http://www.remkoweijnen.nl/blog/2007/10/31/how-to-get-client-ip-address/
deneyip sonucu bildirirsin. oldukça sade bir kod
kaynak kodu : http://www.remkoweijnen.nl/blog/download/ClientIP.zip
Kod: Tümünü seç
uses JwaWinType, JwaWtsApi32, JwaWinsock2, ExtCtrls;
type
PWtsSessionInfoAArray = ^TWtsSessionInfoAArray;
TWtsSessionInfoAArray = array[0..ANYSIZE_ARRAY-1] of WTS_SESSION_INFOA;
var hServer: THandle;
SessionInfoPtr: PWtsSessionInfoAArray;
pCount: Cardinal;
ClientAddressPtr: PWtsClientAddress;
dwBytesReturned: Cardinal;
IPStr: String;
i: integer;
begin
if WtsEnumerateSessions(WTS_CURRENT_SERVER, 0, 1, PWTS_SESSION_INFO(SessionInfoPtr),
pCount) then
begin
for i := 0 to pCount - 1 do
begin
WTSQuerySessionInformation(WTS_CURRENT_SERVER, SessionInfoPtr^[i].SessionId,
WTSClientAddress, Pointer(ClientAddressPtr), dwBytesReturned);
case ClientAddressPtr^.AddressFamily of
AF_INET:
IPStr:= Format(‘%d.%d.%d.%d’, [ClientAddressPtr^.Address[2],
ClientAddressPtr^.Address[3], ClientAddressPtr^.Address[4],
ClientAddressPtr^.Address[5]]);
AF_INET6:
IPStr:= ‘IPv6 address not yet supported’;
AF_IPX:
IPStr:= ‘IPX is not supported’;
AF_NETBIOS:
IPStr:= ‘NETBIOS is not supported’;
AF_UNSPEC:
IPStr:= ‘Unspecified (console and listener session have no address)’;
end;
WTSfreeMemory(ClientAddressPtr);
end;
end;
// Don’t close the handle if it’s WTS_CURRENT_SERVER
WtsFreeMemory(SessionInfoPtr);
end;
Re: Uzaktan Oturum Açan Kullanıcının WAN IP Adresini Almak
hemmennn deneyip sonucu bildiriyorum..
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
Re: Uzaktan Oturum Açan Kullanıcının WAN IP Adresini Almak
Örnek tanıdık geliyordu zaten
, maalesef buda oturum açan kullanıcının local IP adresini veriyor, olsun sizin ilk gönderdiğinizi örnek işimi gördü, hem bir çok amaç içinde kullanılabilecek bir örnek bütün portlara bağlanan uzak yakın bütün IP leri veriyor.
Çok teşekkürler.

Çok teşekkürler.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr