关于获取本机Ip地址

junlie 2009-12-23 06:49:41
我的机子是windows7专业版、
安装之后IP协议是IPv6、
用普通获取方式得到的就是IPv6的地址、
如何将他转换成IPv4的内种、
...全文
181 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
pyyzwf 2010-03-15
  • 打赏
  • 举报
回复
使用旧的方法
//GetHostByName 获得的是IPv4的地址,若用GetHostEntry代替则获得所有地址

IPHostEntry IPH = Dns.GetHostByName(this.textBox1.Text);
IPAddress[] MyIP = IPH.AddressList;
string ipv4=MyIP[0].ToString();
zenowolf 2009-12-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yangglemu 的回复:]
我用的vista也有IPV6地址
IPAddress[] ips = Dns.GetHostAddresses("");可以得到IP列表
一般来说,ips[0]是IPV6格式,ips[1]是IPv4格式
也说是说,根据主机名获取IP集合,第一项是IPV6,第二项是IPV4.
[/Quote]
linekery 2009-12-23
  • 打赏
  • 举报
回复
貌似不行吧
小D 2009-12-23
  • 打赏
  • 举报
回复
学习了~!
junlie 2009-12-23
  • 打赏
  • 举报
回复
一楼 、 二楼都不行、
三楼的也不行、
都只能获取IPv6格式的
junlie 2009-12-23
  • 打赏
  • 举报
回复
但是我测试的时候还是显示的IPv6的格式啊、

行不通 阿、
  • 打赏
  • 举报
回复
我用的vista也有IPV6地址
IPAddress[] ips = Dns.GetHostAddresses("");可以得到IP列表
一般来说,ips[0]是IPV6格式,ips[1]是IPv4格式
也说是说,根据主机名获取IP集合,第一项是IPV6,第二项是IPV4.
qqzeng-ip 2009-12-23
  • 打赏
  • 举报
回复
IPHostEntry IpEntry = Dns.GetHostEntry(Dns.GetHostName());
string myip = IpEntry.AddressList[0].ToString();

//这样,如果没有安装IPV6协议,可以取得IP地址. 但是如果安装了IPV6,就取得的是IPV6的IP地址.

string myip = IpEntry.AddressList[1].ToString();
//这样就在IPV6的情况下取得IPV4的IP地址.
qqzeng-ip 2009-12-23
  • 打赏
  • 举报
回复
System.Net.IPHostEntry IpEntry = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName()); 


for (int i = 0; i != IpEntry.AddressList.Length; i++)
{
if (!IpEntry.AddressList[i].IsIPv6LinkLocal)
{
MessageBox.Show(IpEntry.AddressList[i].ToString());
}
}

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧