vs c#编程 win7下获取ipv4 地址
用的是visualstudio2010的在win7系统代码是:IPAddress_ip=Dns.GetHostAddresses(Dns.GetHostName())[0...
用的是visual studio2010的 在win7系统
代码是:
IPAddress _ip = Dns.GetHostAddresses(Dns.GetHostName())[0];
_tcpl = new TcpListener(_ip, _port);
_tcpl.Start();
Console.WriteLine("服务器已启动,正在监听...\n");
Console.WriteLine(string.Format("服务器IP:{0}\t端口号:{1}\n", _ip, _port));
结果ip显示不是正常格式,而且自己联网和不联网都不一样,不联网时,显示的 服务器ip是 ::1
我是想做一个服务端
这样好像是获取的ipv6
怎样修改获取ipv4?
程序在05版本上是可行的 展开
代码是:
IPAddress _ip = Dns.GetHostAddresses(Dns.GetHostName())[0];
_tcpl = new TcpListener(_ip, _port);
_tcpl.Start();
Console.WriteLine("服务器已启动,正在监听...\n");
Console.WriteLine(string.Format("服务器IP:{0}\t端口号:{1}\n", _ip, _port));
结果ip显示不是正常格式,而且自己联网和不联网都不一样,不联网时,显示的 服务器ip是 ::1
我是想做一个服务端
这样好像是获取的ipv6
怎样修改获取ipv4?
程序在05版本上是可行的 展开
3个回答
2015-10-20 · 知道合伙人互联网行家
百度网友51275341
知道合伙人互联网行家
向TA提问 私信TA
知道合伙人互联网行家
采纳数:2660
获赞数:8331
毕业湖南工商学院计算机专业,大专学历。网络行业4年工作经验,读过多本网络运营相关书籍,现任运营总监。
向TA提问 私信TA
关注
展开全部
vs c#编程 win7下获取ipv4 地址方法:
方法一:
// 此方法需要添加引用System.Management。
private string GetIpv4()。
{
ManagementClass mc = new 。ManagementClass("Win32_NetworkAdapterConfiguration")。
ManagementObjectCollection nics = mc.GetInstances()。
foreach (ManagementObject nic in nics)。
{
if (Convert.ToBoolean(nic["ipEnabled"]) == true)。
{
return (nic["IPAddress"] as String[])[0]。
}
}
return null。
}
方法二:
private string GetLocalIpv4()。
{
try。
{
// 获得网络接口,网卡,拨号器,适配器都会有一个网络接口。
NetworkInterface[] networkInterfaces = NetworkInterface.GetAllNetworkInterfaces()。
foreach (NetworkInterface network in networkInterfaces)。
{
// 获得当前网络接口属性。
IPInterfaceProperties properties = network.GetIPProperties()。
// 每个网络接口可能会有多个IP地址 。
foreach (IPAddressInformation address in properties.UnicastAddresses)。
{
// 如果此IP不是ipv4,则进行下一次循环。
if (address.Address.AddressFamily != AddressFamily.InterNetwork)。
continue。
// 忽略127.0.0.1。
if (IPAddress.IsLoopback(address.Address))。
continue。
return address.Address.ToString()。
}
}
}
catch (Exception ex)。
{
MessageBox.Show("Error: " + ex.Message)。
}
return null。
}
方法一:
// 此方法需要添加引用System.Management。
private string GetIpv4()。
{
ManagementClass mc = new 。ManagementClass("Win32_NetworkAdapterConfiguration")。
ManagementObjectCollection nics = mc.GetInstances()。
foreach (ManagementObject nic in nics)。
{
if (Convert.ToBoolean(nic["ipEnabled"]) == true)。
{
return (nic["IPAddress"] as String[])[0]。
}
}
return null。
}
方法二:
private string GetLocalIpv4()。
{
try。
{
// 获得网络接口,网卡,拨号器,适配器都会有一个网络接口。
NetworkInterface[] networkInterfaces = NetworkInterface.GetAllNetworkInterfaces()。
foreach (NetworkInterface network in networkInterfaces)。
{
// 获得当前网络接口属性。
IPInterfaceProperties properties = network.GetIPProperties()。
// 每个网络接口可能会有多个IP地址 。
foreach (IPAddressInformation address in properties.UnicastAddresses)。
{
// 如果此IP不是ipv4,则进行下一次循环。
if (address.Address.AddressFamily != AddressFamily.InterNetwork)。
continue。
// 忽略127.0.0.1。
if (IPAddress.IsLoopback(address.Address))。
continue。
return address.Address.ToString()。
}
}
}
catch (Exception ex)。
{
MessageBox.Show("Error: " + ex.Message)。
}
return null。
}
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家可靠的代理服务提供商,提供原生IP(住宅原生IP)和高匿名代理服务。以下是关于StormProxies的原生IP服务的一些信息:1. 住宅原生IP:StormProxies提供的住宅原生IP是指从真实的家庭或企...
点击进入详情页
本回答由Storm代理提供
展开全部
通常用System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName()).AddressList[0].ToString())
AddressList里面有ipv6和ipv4,遍历一下吧,ipv4比ipv6长度小一些。
AddressList里面有ipv6和ipv4,遍历一下吧,ipv4比ipv6长度小一些。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
联网和不联网确实是不一样的,因为本来就IP不一样,除非你是在局域网内
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询