出自:http://blog.163.com/ldy_3881685/blog/static/32380136200954112940184/
很多软件都有获知局域网在线计算机IP的功能,但是在.net怎么实现呢,有好多方法,
下面我给大家介绍几种,供大家参考。

1、微软社区上介绍了使用Active Directory 来遍历局域网
利用DirectoryEntry组件来查看网络
网址:http://www.microsoft.com/china/communITy/program/originalarticles/techdoc/DirectoryEntry.mspx

private void EnumComputers(){using(DirectoryEntry root = new DirectoryEntry("WinNT:")){foreach(DirectoryEntry domain in root.Children){Console.WriteLine("Domain | WorkGroup: "+domain.Name);foreach(DirectoryEntry computer in domain.Children){Console.WriteLine("Computer: "+computer.Name);}}}}

效果评价:速度慢,效率低,还有一个无效结果 Computer: Schema 使用的过程中注意虑掉。

2、利用Dns.GetHostByAddress和IPHostEntry遍历局域网

private void EnumComputers(){for (int i = 1; i <= 255; i++){string scanIP = "192.168.0." + i.ToString();IPAddress myScanIP = IPAddress.Parse(scanIP);IPHostEntry myScanHost = null;try{myScanHost = Dns.GetHostByAddress(myScanIP);}catch{continue;}if (myScanHost != null){Console.WriteLine(scanIP+"|"+myScanHost.HostName);}}
} 

效果评价:效率低,速度慢,不是一般的慢。

3、使用System.Net.NetworkInformation.Ping来遍历局域网

private void EnumComputers(){try{for (int i = 1; i <= 255; i++){Ping myPing;myPing = new Ping();myPing.PingCompleted += new PingCompletedEventHandler(_myPing_PingCompleted);string pingIP = "192.168.0." + i.ToString();myPing.SendAsync(pingIP, 1000, null);}}catch{}
}PRIVATE void _myPing_PingCompleted(object sender, PingCompletedEventArgs e)
{if (e.Reply.Status == IPStatus.Success){Console.WriteLine(e.Reply.Address.ToString() + "|" + Dns.GetHostByAddress(IPAddress.Parse(e.Reply.Address.ToString())).HostName);}}

效果评价:速度快,效率高,如果只取在线的IP,不取计算机名,速度会更快。

需要注意的是取计算机名称如果用Dns.GetHostByAddress取计算机名称,结果虽然正确,但VS2005会提示该方法已过时,但仍能使用。
如果用它推荐的替代方法Dns.GetHostEntry,则有个别计算机的名称会因超时而获得不到。

c# 扫描局域网IP列表的几种方法相关推荐

  1. 三种扫描局域网ip方案

    from: http://wooden-baby.javaeye.com/blog/351912 使用java线程扫描局域网ip简单方案 java 快速扫描局域网 ip 之二级嵌套类 方案一 : im ...

  2. 使用 arp-scan 快速扫描局域网 IP -> raspberry pi ssh vnc

    简介 在使用 ssh/vnc 对树莓派进行远程操作的时候,都需要获取树莓派的 IP.常见的办法是路由器管理页面或者使用 Advanced IP Scanner.但是我既没有路由器,也没搞懂这个软件怎么 ...

  3. cmd扫描局域网ip 如何扫描局域网中的路由器的IP地址

    电脑IP地址分两种,静态IP地址和DHCP动态IP. 如果是静态IP,不知道内网IP配置情况,只能逐个地址段试了. 如果是DHCP动态获取IP,一般的情况是,DHCP服务器先给你分配一个临时的IP地址 ...

  4. java扫描局域网中可用ip_使用java线程扫描局域网ip简单方案

    package com.cjh.thread; import java.io.BufferedReader; import java.io.IOException; import java.io.In ...

  5. 扫描局域网IP和MAC的有力工具BPSNMPUtil

    扫描局域网IP和MAC的有力工具,其他工具和它比起来简直弱爆了,它能扫描识别出小.中.大型网络基本所有在线电脑的IP地址和其对应的MAC地址,请看下面的截图: 转载于:https://blog.51c ...

  6. 查找树莓派ip地址的几种方法

    1.环境说明 从上面的图中可以看到树莓派是通过网线和win10电脑相连的,以此来共享win10电脑网络,但是需要在电脑端设置后才能将网络共享出来, 设置方法参考以下链接: 通过一根网线共享网络给另一个 ...

  7. c# 获得本地ip地址的三种方法

    网上有很多种方法可以获取到本地的IP地址.一线常用的有这么些: 枚举本地网卡 using System.Net.NetworkInformation; using System.Net.Sockets ...

  8. php获取ip几种方法区别,php获取客户端IP地址的几种方法

    php获取客户端IP地址的几种方法 阅读php获取客户端IP地址的几种方法, 1:来看看代码: echo "(1)浏览当前页面的用户的 IP 地址为:"; echo $_SERVE ...

  9. 获取客户端网卡MAC地址和IP地址的几种方法(一)

    获取客户端网卡MAC地址和IP地址的几种方法(一) 作者:代码乱了 在做B/S结构的系统时,我们常常需要获取客户端的一些信息,如IP和MAC,以结合身份验证.在ASP.NET中,要获取服务器端的MAC ...

最新文章

  1. css实现左边div固定宽度,右边div自适应撑满剩下的宽度
  2. typescript语法高亮插件_vscode常用插件
  3. 企业级备份方案系列PART3:SCDPM 2012备份/恢复Exchange2010
  4. 性能测试场景设计--混合业务场景下的脚本比例控制
  5. OAuth2 授权码模式为什么不直接返回access_token
  6. 在Linux系统部署docsify工具小记
  7. 周末不知道学什么?这份 Android 优秀技术文章清单请收下
  8. php从一个字符串中过滤掉英文,php过滤只保留中文,英文以及数字的方法
  9. 虚幻4游戏引擎的安装
  10. 简述相关分析(Correlation)
  11. 「HNOI2004」 宠物收养所 - 平衡树Splay
  12. html 高度塌陷,前端高度塌陷问题
  13. 关于电商秒杀系统中防超卖、以及高性能下单的处理方案简述
  14. Do it for success
  15. 温度上报实时监控项目——客户端
  16. 用科技解决亿万人吃饭难题,中国团队入围工业工程界「诺贝尔奖」
  17. simulink如何解非线性方程
  18. 移动资费:是0.07元/分钟还是0.60元/分钟?
  19. 给ubuntu server 16.04.6打preempt rt补丁
  20. CSP-J-2010-接水问题

热门文章

  1. 【图论】中国邮递员问题、平面图上最大割问题的多项式时间算法
  2. 小白菜病害检测图像数据集介绍
  3. python | plt.scatter画圆形或者方框——没有填充色、边框颜色设置
  4. 回溯法之活动安排问题
  5. java微博源码_基于jsp的微博-JavaEE实现微博 - java项目源码
  6. 装VMware后在主机找不到VMnet1和VMnet8问题(巨详细已解决)
  7. 信息系统开发(JAVA)设计一个银行账户类
  8. 为什么要学网络安全?如何学习网络安全?这3个理由告诉你(自己整理的50G网安资料)
  9. 基于 K-means 算法实现的文本聚类(干货)
  10. GANs:生成对抗网络系列及应用