好一段时间没来更新博客了,因为密码实在记不住,烦死了,密码干脆直接用那个找回密码链接的一部分。

吐槽完说正事了,关于C#  获取本机IP的,最开始用的是下面的,但是因为获取IP的有点多,而且难判断,忽略了。

            IPAddress[] addressList = Dns.GetHostAddresses(Dns.GetHostName());

    后来换成了获取所有网卡的,网上这个案例很多

            NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();

但是获取的IP地址也还是很多,判断少,最后改为这样的:

        public static List<IPAddress> GetServerIP()
{
List<IPAddress> ipaddress = new List<IPAddress> (); //获取网卡
NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
try
{
//用于ping当前获取的网卡是否当前电脑使用的
using (Ping ping = new Ping())
{
foreach (NetworkInterface ni in interfaces)
{
//初学应该比较难懂这段,就是说枚举里是否包含某个枚举
//Wireless80211(无线连接)是否拥有Ethernet(以太网连接),所以所有包含以太网的都可以
if ((ni.NetworkInterfaceType & NetworkInterfaceType.Ethernet) != NetworkInterfaceType.Ethernet)
continue;
var ippros = ni.GetIPProperties().UnicastAddresses;
foreach (UnicastIPAddressInformation ip in ippros)
{
//还可以继续判断是否为0.0.0.0,是否172.0.0.1 之类的
//忽略不是ipv4的
if (ip.Address.AddressFamily != AddressFamily.InterNetwork)
continue;
//ping获取的IP地址,如果ping不通则不是当前使用的网络
var rep = ping.Send(ip.Address);
if (rep.Status != IPStatus.Success)
continue;
//项目需要
ipaddress.Add(ip.Address);
}
}
}
}
catch
{
//win7如果全部网卡禁用ping会报错,返回空
return ipaddress;
}
return ipaddress;
}

相对网上的,加了ping和Ethernet枚举判断的优化(不会忽略无线网卡)

懒得排版了,今天事还比较多,大家凑合着看。

最新文章

  1. MongoDB学习笔记一:入门
  2. jquery 轮播图
  3. Machine Learning 学习笔记 (4) —— 广义线性模型
  4. c++/java/c# 几种编程语言的指针、引用比较
  5. 安装ejabberd2并配置MySQL为其数据库
  6. UITextView光标在中间的问题
  7. Android logcat使用
  8. 删除已分配IP的静态IP地址池
  9. [上传下载] C#修改DownLoadHelper上传下载帮助类 (转载)
  10. springmvc学习笔记(理论)
  11. java 逆波兰表达式
  12. Nopcommerce架构浅谈之架构层次
  13. 表格单元格td设置宽度无效的解决办法 .
  14. iOS关于友盟分享弹不出面板问题
  15. ADB——管理应用
  16. js弹出层学习
  17. 什么是DNS服务器
  18. python学习笔记013——推导式
  19. EditPlus 4.3.2477 中文版已经发布(11月3日更新)
  20. BZOJ1718: [Usaco2006 Jan] Redundant Paths 分离的路径【边双模板】【傻逼题】

热门文章

  1. 关闭ext4文件系统的日志功能
  2. parquet文件格式——本质上是将多个rows作为一个chunk,同一个chunk里每一个单独的column使用列存储格式,这样获取某一row数据时候不需要跨机器获取
  3. MongoDB C++ gridfs worked example
  4. 编程方式取得Spring上下文的Properties
  5. 【HDU 3613】Best Reward
  6. 使用Navicat连接MySQL出现1251错误
  7. C#:C# 运算符
  8. DPWL具关劳过农派广决建
  9. firefly安装步骤
  10. [置顶] 一位ACMer过来人的心得