web-dev-qa-db-fra.com

Obtenir l'adresse IP de la machine client

J'essaie d'obtenir l'adresse IP de la machine cliente en utilisant C #. J'utilise le code ci-dessous pour obtenir l'adresse IP:

string IPAddress = HttpContext.Current.Request.UserHostAddress;

Mais cela me donne la réponse au format codé, c'est-à-dire fe80::ed13:dee2:127e:1264%13

Comment puis-je obtenir l'adresse IP réelle? Toute personne confrontée à ce problème peut partager une idée.

12
Sushri

C #

string IPAddress = GetIPAddress();

public string GetIPAddress()
{
    IPHostEntry Host = default(IPHostEntry);
    string Hostname = null;
    Hostname = System.Environment.MachineName;
    Host = Dns.GetHostEntry(Hostname);
    foreach (IPAddress IP in Host.AddressList) {
        if (IP.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) {
            IPAddress = Convert.ToString(IP);
        }
    }
    return IPAddress;
}

VB.net

Dim Host As IPHostEntry
Dim Hostname As String
Hostname = My.Computer.Name
Host = Dns.GetHostEntry(Hostname)
For Each IP As IPAddress In Host.AddressList
    If IP.AddressFamily = System.Net.Sockets.AddressFamily.InterNetwork Then
        IPAddress = Convert.ToString(IP)
    End If
    Next
Return IPAddress

J'espère que cela t'aides

15
private string GetUserIP()
 {
     return Request.ServerVariables["HTTP_X_FORWARDED_FOR"] ?? Request.ServerVariables["REMOTE_ADDR"];    
 }

Vous pouvez obtenir plusieurs adresses IP, vous pouvez donc les diviser en-

private string GetUserIP()
    {
        string ipList = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

        if (!string.IsNullOrEmpty(ipList))
        {
            return ipList.Split(',')[0];
        }

        return Request.ServerVariables["REMOTE_ADDR"];
    }
6
Ramashankar

essayez d'utiliser ceci

string ip=System.Net.Dns.GetHostEntry
               (System.Net.Dns.GetHostName()).AddressList.GetValue(0).ToString();
5
The Dictator

Dans mon projet, il est nécessaire d'obtenir l'IP du PC local. Donc je l'utilise Veuillez essayer le code ci-dessous

string strHostName = System.Net.Dns.GetHostName();
IPHostEntry ipEntry = System.Net.Dns.GetHostEntry(strHostName);
IPAddress[] addr = ipEntry.AddressList;
string ip = addr[1].ToString();
4
Sapnandu