Today, I had a design review meeting about a new small application that I’m participating in its development as an architect. One of the crucial features in this application was depending on the ability to identify the client’s computer name (don’t ask me why…). Since this was a crucial thing for my customer, I decided to write about it. Pay attention that the solution I offer is for intranet application since it is counting on a DNS server.
Get Client Computer Name
In order to retrieve the client’s computer name, you will have to query the DNS server with the client’s IP. The IP can be easily retrieved by using the ASP.NET Request
object with its UserHostAddress
property.
Here is a method that returns the computer name by a given IP:
public string GetComputerName(string clientIP)
{
try
{
var hostEntry = Dns.GetHostEntry(clientIP);
return hostEntry.HostName;
}
catch (Exception ex)
{
return string.Empty;
}
}
In order to use this method, you’ll have to reference the System.Net namespace
which includes the Dns
class. To consume the method, you can write the following code in your ASP.NET application:
GetComputerName(Request.UserHostAddress);
Summary
There are rare times that you need to know what is the name of the computer of your client. I showed how to achieve that using the System.Net.Dns
class. Probably there are more solutions to this problem but this one is very easy to implement.
Gil Fink is a web development expert and ASP.Net/IIS Microsoft MVP. He is the founder and owner of sparXys. He is currently consulting for various enterprises and companies, where he helps to develop Web and RIA-based solutions. He conducts lectures and workshops for individuals and enterprises who want to specialize in infrastructure and web development. He is also co-author of several Microsoft Official Courses (MOCs) and training kits, co-author of "Pro Single Page Application Development" book (Apress) and the founder of Front-End.IL Meetup. You can read his publications at his website: http://www.gilfink.net