获取客户端计算机的IP地址
我试图使用C#获取客户端计算机的IP地址。 我使用以下代码获取IP地址:
string IPAddress = HttpContext.Current.Request.UserHostAddress;
但它给了我编码格式的响应,即fe80::ed13:dee2:127e:1264%13
我怎样才能获得实际的IP地址? 任何人都面临这个问题请分享一些想法。
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
希望这可以帮助
尝试使用这个
string ip=System.Net.Dns.GetHostEntry (System.Net.Dns.GetHostName()).AddressList.GetValue(0).ToString();
private string GetUserIP() { return Request.ServerVariables["HTTP_X_FORWARDED_FOR"] ?? Request.ServerVariables["REMOTE_ADDR"]; }
您可能会获得多个IP地址,因此可以将它们拆分为 –
private string GetUserIP() { string ipList = Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; if (!string.IsNullOrEmpty(ipList)) { return ipList.Split(',')[0]; } return Request.ServerVariables["REMOTE_ADDR"]; }
在我的项目中,需要获取本地PC IP。 所以我用它请尝试下面的代码
string strHostName = System.Net.Dns.GetHostName(); IPHostEntry ipEntry = System.Net.Dns.GetHostEntry(strHostName); IPAddress[] addr = ipEntry.AddressList; string ip = addr[1].ToString();