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.
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
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"];
}
essayez d'utiliser ceci
string ip=System.Net.Dns.GetHostEntry
(System.Net.Dns.GetHostName()).AddressList.GetValue(0).ToString();
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();