In this article I will explain with an example, how to get Client IP Address of Visitor�s Machine in ASP.Net using C# and VB.Net.
HTML Markup
The HTML Markup consists of following control:
Label – For displaying client IP Address.
<asp:Label runat="server" ID="lblIpAddress"></asp:Label>
Displaying IP Address of Visitors Machine using C# and VB.Net
Inside the Page_Load event handler, first the IP Address is determined using Request.ServerVariables collection for the Client machine’s which are behind Routers or Proxy Servers and hence, the HTTP_X_FORWARDED_FOR server variable is checked.
Note: When the Client machine is behind a Proxy Server its IP Address of the Proxy Server is appended to the Client machine’s IP Address.
If there are multiple Proxy Servers then the IP Addresses of all the Proxy Servers are appended to the client machine IP Address.
If the IP Address is not found in the HTTP_X_FORWARDED_FOR server variable, it means that, it is not using any Proxy Server and hence, the IP Address is now checked in the REMOTE_ADDR server variable.
Note: While running this application on your machine locally i.e. in Visual Studio, the IP Address will show as 127.0.0.1 or ::1.
This happens because in such case the Client and Server both are the same machine.
Thus, no need to worry when you deploy it on a Server, you will see the results.
Finally, the detectd IP Address is set into Label control.
C#
protected void Page_Load(object sender, EventArgs e)
{
string ipAddress = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (string.IsNullOrEmpty(ipaddress))
{
ipAddress = Request.ServerVariables["REMOTE_ADDR"];
}
lblIpAddress.Text = "Your IP Address: " + ipAddress;
}
VB.Net
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
Dim ipAddress As String = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If String.IsNullOrEmpty(ipaddress) Then
ipAddress = Request.ServerVariables("REMOTE_ADDR")
End If
lblIpAddress.Text = "Your IP Address: " & ipAddress
End Sub
Screenshot
Demo
Downloads