JL.
JL.

Reputation: 81342

How to get the server IP Address (in C# / asp.net)?

Is there a 1 line method to get the IP Address of the server?

Thanks

Upvotes: 28

Views: 57447

Answers (4)

TAHA SULTAN TEMURI
TAHA SULTAN TEMURI

Reputation: 5271

This method will return your machine public IP address when run this code on your PC and when you deploy your application on server will return Server IP address.

public static string Getpublicip()
    {
        try
        {
            string externalIP = "";
            var request = (HttpWebRequest)WebRequest.Create("http://icanhazip.com.ipaddress.com/");
            var response = (HttpWebResponse)request.GetResponse();
            var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

            externalIP = new WebClient().DownloadString("http://icanhazip.com");
            return externalIP;

        }
        catch (Exception e)
        {

            return "null";
        }

    }

Upvotes: 0

Zhaph - Ben Duguid
Zhaph - Ben Duguid

Reputation: 26966

Request.ServerVariables["LOCAL_ADDR"];

From the docs:

Returns the server address on which the request came in. This is important on computers where there can be multiple IP addresses bound to the computer, and you want to find out which address the request used.

This is distinct from the Remote addresses which relate to the client machine.

Upvotes: 58

Mark Carpenter
Mark Carpenter

Reputation: 17775

As other(s) have posted, System.Net.Dns.GetHostEntry is the way to go. When you access the AddressList property, you'll want to take the AddressFamily property into account, as it could return both IPv4 AND IPv6 results.

Upvotes: 2

Faizan S.
Faizan S.

Reputation: 8644

From searching the net I found following code: (I couldn't find a single line method there)

string myHost = System.Net.Dns.GetHostName();

// Show the hostname 

MessageBox.Show(myHost);

// Get the IP from the host name

string myIP = System.Net.Dns.GetHostEntry(myHost).AddressList[index].ToString();

// Show the IP 

MessageBox.Show(myIP);

-> where index is the index of your ip address host (ie. network connection).

Code from: http://www.geekpedia.com/tutorial149_Get-the-IP-address-in-a-Windows-application.html

Upvotes: 6

Related Questions