代码如下class Program
{
static void Main(string[] args)
{
IPHostEntry ihe = Dns.GetHostEntry(Dns.GetHostName());
Console.WriteLine(Dns.GetHostName()); string sixteen_ipv6 = ihe.AddressList[0].ToString();
string sixteen_ipv4 = ihe.AddressList[1].ToString(); Console.WriteLine(sixteen_ipv6);
Console.WriteLine(sixteen_ipv4);
Console.ReadKey();
}
}读出来的东西为
fe80::1c87:1a36:3f57:fe85%12这些东西要怎么才能转换成明文丫我一开始以为是16进制,结果转出来以后还是看不懂(去掉:转换的)
求高手解答
{
static void Main(string[] args)
{
IPHostEntry ihe = Dns.GetHostEntry(Dns.GetHostName());
Console.WriteLine(Dns.GetHostName()); string sixteen_ipv6 = ihe.AddressList[0].ToString();
string sixteen_ipv4 = ihe.AddressList[1].ToString(); Console.WriteLine(sixteen_ipv6);
Console.WriteLine(sixteen_ipv4);
Console.ReadKey();
}
}读出来的东西为
fe80::1c87:1a36:3f57:fe85%12这些东西要怎么才能转换成明文丫我一开始以为是16进制,结果转出来以后还是看不懂(去掉:转换的)
求高手解答
Console.WriteLine(Dns.GetHostName()); string sixteen_ipv6 = ihe.AddressList[0].ToString();
string sixteen_ipv4 = ihe.AddressList[3].ToString(); Console.WriteLine(sixteen_ipv6);
Console.WriteLine(sixteen_ipv4); Console.ReadKey();
IPAddress addr;
// 获得本机局域网IP地址
addr = new IPAddress(Dns.GetHostByName(Dns.GetHostName()).AddressList[0].Address);
Address 这个是过时方法了,vs2010强制否定了,无法编译
using System.Net;
using System.Net.Sockets;namespace ConsoleApplication1
{ class Program
{
static void Main(string[] args)
{
IPHostEntry ihe = Dns.GetHostEntry(Dns.GetHostName());
Console.WriteLine(Dns.GetHostName());
foreach (var a in ihe.AddressList)
Console.WriteLine("{0} {1}", a.AddressFamily == AddressFamily.InterNetworkV6 ? "ipv6" : "ipv4", a.ToString());
Console.ReadKey();
} }}每台机器都是不一样的。随着网卡(包括虚拟网卡)的多少而变化。比如我启动一个蓝牙服务,那么打印结果就不一样了。
我也试出来了,原来是AddressList[2]
除了AddressList[2]是ipv4,都是ipv6
这些ip有排列的规律吗,难道我要想得ip,总是要全部得到,然后筛选ip的类型吗?
其他的人不要再误导楼主了
也请楼主先去看看网络这方面的资料
再来问好吧
至少分清楚ip第4版和第6版的情况好吧
http://msdn.microsoft.com/en-us/library/aa394217(v=vs.85).aspx