Forum
Herkese merhaba,
Asp.net ile yapmış olduğumuz bir sitede client bilgisayarın etki alanı(domain) yada çalışma gurubu(workgroup) ismini ekrana nasıl yazdırabiliriz? İnternette bir sürü örnek buldum ancak tamamı server'ın bilgisini yazdırıyor. İstediğim İstemci bilgisayarların yani siteyi ziyaret eden bilgisayarların domain isimleri lazım. System.Net.Dns.GetHostName(); yada System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties().DomainName; gibi örnekler malesef hep dosyanın yüklü olduğu sunucunun bilgilerini veriyor. İStemci bilgisayarların bilgilerini gösteren bir örnek göremedim. Bilen yada bir fikri olan varsa çok sevinirim. Ms dos ekranında (systeminfo | findstr /B /C:"Domain") bu komutu verdiğimde çıkan sonucu asp.net ortamında istiyorum.
Merhabalar;
System.Net.Dns.GetHostEntry(Request.ServerVariables["remote_addr"]).HostName
Yapınız Hosting firmasında ise ordan da destek alabilirsiniz ["remote_addr"] şeklindeki header okuma firmalara göre değişiklik gösteriyor
["remote_addr"] , ["HTTP_X_FORWARDED_FOR"] , ["CLIENT_IP"] gibi.
Ali beya Merhaba,
Malesef o kodu önceden denemiştim. Serverın host ismini veriyor. Benim istediğim kullanıcı bilgisayarların etkialanı ismi.
Mesajınız için teşekkür ederim. Kurumun hosting birimine sorduğumda HTTP_X_FORWARDED_FOR ile yapabileceğimi söylediler. Asp örneğini göndermişler ancak. Gönderdikleri örnek şu şekilde.
<%
if not Left(Request.ServerVariables("HTTP_X_FORWARDED_FOR"),5)="10.91" then Response.Redirect("hata.asp ") end if %>
bende asp.net ilevar ip = ( HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null
&& HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != "" )
? HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]
: HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
if (ip.Contains( "," ))
ip = ip.Split( ',' ).First().Trim();
return ip;
komutunu bulup yaptım oldu. İlginize teşekkür ederim.
güzel , malesef bu ayarlar hosta göre değişiyor .