C#Winform 如何获取本机IP
//获取本机第一个可用的IP地址IPAddressmyIPAddress=(IPAddress)Dns.GetHostAddresses(Dns.GetHostName(...
// 获取本机第一个可用的IP地址
IPAddress myIPAddress = (IPAddress)Dns.GetHostAddresses(Dns.GetHostName()).GetValue(0);
学习书上写的方法,此方法应该比较旧了吧
问题1,我有使用路由器的且手动配置IP地址(即192.168.1.101这样),但是用上面的方法,不能获取实际的IP地址(即119.X.X.X这样的),只能获取在路由器上的IP,请问怎么修改上面的代码?
问题2,(与问题1无关)上面的方法,我在WIN7下获取IP地址是一段奇怪的数字,请问这也怎么修改上面的代码? 展开
IPAddress myIPAddress = (IPAddress)Dns.GetHostAddresses(Dns.GetHostName()).GetValue(0);
学习书上写的方法,此方法应该比较旧了吧
问题1,我有使用路由器的且手动配置IP地址(即192.168.1.101这样),但是用上面的方法,不能获取实际的IP地址(即119.X.X.X这样的),只能获取在路由器上的IP,请问怎么修改上面的代码?
问题2,(与问题1无关)上面的方法,我在WIN7下获取IP地址是一段奇怪的数字,请问这也怎么修改上面的代码? 展开
6个回答
展开全部
如果是在vs2008中会发现楼上的方法已过期 ,但是强制使用的话也不会报错
vs2008中可以这样获取ip地址:
IPHostEntry ipe = Dns.GetHostEntry(Dns.GetHostName());
IPAddress ipa=ipe.AddressList[0];
关于win7的问题,
因为在win7中已经启用了IPv6,所以 ipe.AddressList[0]返回的是IPv6格式的地址,应该使用 ipe.AddressList[1] 返回 IPv4 格式地址
如果有多个网卡,可以设断点监视 ipa的值,看是否是需要的地址
vs2008中可以这样获取ip地址:
IPHostEntry ipe = Dns.GetHostEntry(Dns.GetHostName());
IPAddress ipa=ipe.AddressList[0];
关于win7的问题,
因为在win7中已经启用了IPv6,所以 ipe.AddressList[0]返回的是IPv6格式的地址,应该使用 ipe.AddressList[1] 返回 IPv4 格式地址
如果有多个网卡,可以设断点监视 ipa的值,看是否是需要的地址
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto...
点击进入详情页
本回答由Storm代理提供
展开全部
C#Winform 获取本机IP程序代码:
System.Net.IPHostEntry myEntry = System.Net.Dns.GetHostEntry;(System.Net.Dns.GetHostName());
string ipAddress = myEntry.AddressList[0].ToString();
System.Net.IPHostEntry myEntry = System.Net.Dns.GetHostEntry;(System.Net.Dns.GetHostName());
string ipAddress = myEntry.AddressList[0].ToString();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
using System.Net;
public static string GetHostName()
{
return Dns.GetHostName();
}
public static IPAddress[] GetLocalIP()
{
string name = Dns.GetHostName();
IPHostEntry me = Dns.GetHostEntry(name);
return me.AddressList;
}
public static IPAddress GetFirstIP()
{
IPAddress[] ips = GetLocalIP();
foreach (IPAddress ip in ips)
{
if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6)
continue;
return ip;
}
return ips != null && ips.Length > 0 ? ips[0] : new IPAddress(0x0);
}
public static string GetHostName()
{
return Dns.GetHostName();
}
public static IPAddress[] GetLocalIP()
{
string name = Dns.GetHostName();
IPHostEntry me = Dns.GetHostEntry(name);
return me.AddressList;
}
public static IPAddress GetFirstIP()
{
IPAddress[] ips = GetLocalIP();
foreach (IPAddress ip in ips)
{
if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6)
continue;
return ip;
}
return ips != null && ips.Length > 0 ? ips[0] : new IPAddress(0x0);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要获得自己的外网IP,需要借助外界的一个IP返回点,否则单凭自身是不能获得的(当然,如果你本机有公网IP的情况除外)
具体的实现,可以参见下面的内容
具体的实现,可以参见下面的内容
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在线真实IP互踩开刷
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询