我需要获取系统的IP地址,其中应用程序由C#代码
运行IPAddress[] ip = Dns.GetHostAddresses(Dns.GetHostName());
foreach (IPAddress theaddress in ip)
{
String _ipAddress = theaddress.ToString();
}
我正在使用此代码,但这会在不同的操作系统中产生不同的结果。例如,在Windows 7中它给出“fe80 :: e3:148d:6e5b:bcaa%14”
和Windows XP它给出了“192.168.10.93”。
答案 0 :(得分:1)
请注意,您可能会为计算机分配多个IP地址。你可以像这样检索它们(注意:这段代码忽略了环回地址):
var iplist = new List<string>();
foreach (var iface in NetworkInterface.GetAllNetworkInterfaces())
{
var ips = iface.GetIPProperties().UnicastAddresses;
foreach (var ip in ips)
if (ip.Address.AddressFamily == AddressFamily.InterNetwork &&
ip.Address.ToString() != "127.0.0.1")
iplist.Add(ip.Address.ToString());
}
使用的命名空间包括:
using System.Net;
using System.Net.NetworkInformation;
using System.Net.Sockets;
答案 1 :(得分:-1)