c# 扫描局域网IP列表的几种方法
出自: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列表的几种方法相关推荐
- 三种扫描局域网ip方案
from: http://wooden-baby.javaeye.com/blog/351912 使用java线程扫描局域网ip简单方案 java 快速扫描局域网 ip 之二级嵌套类 方案一 : im ...
- 使用 arp-scan 快速扫描局域网 IP -> raspberry pi ssh vnc
简介 在使用 ssh/vnc 对树莓派进行远程操作的时候,都需要获取树莓派的 IP.常见的办法是路由器管理页面或者使用 Advanced IP Scanner.但是我既没有路由器,也没搞懂这个软件怎么 ...
- cmd扫描局域网ip 如何扫描局域网中的路由器的IP地址
电脑IP地址分两种,静态IP地址和DHCP动态IP. 如果是静态IP,不知道内网IP配置情况,只能逐个地址段试了. 如果是DHCP动态获取IP,一般的情况是,DHCP服务器先给你分配一个临时的IP地址 ...
- java扫描局域网中可用ip_使用java线程扫描局域网ip简单方案
package com.cjh.thread; import java.io.BufferedReader; import java.io.IOException; import java.io.In ...
- 扫描局域网IP和MAC的有力工具BPSNMPUtil
扫描局域网IP和MAC的有力工具,其他工具和它比起来简直弱爆了,它能扫描识别出小.中.大型网络基本所有在线电脑的IP地址和其对应的MAC地址,请看下面的截图: 转载于:https://blog.51c ...
- 查找树莓派ip地址的几种方法
1.环境说明 从上面的图中可以看到树莓派是通过网线和win10电脑相连的,以此来共享win10电脑网络,但是需要在电脑端设置后才能将网络共享出来, 设置方法参考以下链接: 通过一根网线共享网络给另一个 ...
- c# 获得本地ip地址的三种方法
网上有很多种方法可以获取到本地的IP地址.一线常用的有这么些: 枚举本地网卡 using System.Net.NetworkInformation; using System.Net.Sockets ...
- php获取ip几种方法区别,php获取客户端IP地址的几种方法
php获取客户端IP地址的几种方法 阅读php获取客户端IP地址的几种方法, 1:来看看代码: echo "(1)浏览当前页面的用户的 IP 地址为:"; echo $_SERVE ...
- 获取客户端网卡MAC地址和IP地址的几种方法(一)
获取客户端网卡MAC地址和IP地址的几种方法(一) 作者:代码乱了 在做B/S结构的系统时,我们常常需要获取客户端的一些信息,如IP和MAC,以结合身份验证.在ASP.NET中,要获取服务器端的MAC ...
最新文章
- css实现左边div固定宽度,右边div自适应撑满剩下的宽度
- typescript语法高亮插件_vscode常用插件
- 企业级备份方案系列PART3:SCDPM 2012备份/恢复Exchange2010
- 性能测试场景设计--混合业务场景下的脚本比例控制
- OAuth2 授权码模式为什么不直接返回access_token
- 在Linux系统部署docsify工具小记
- 周末不知道学什么?这份 Android 优秀技术文章清单请收下
- php从一个字符串中过滤掉英文,php过滤只保留中文,英文以及数字的方法
- 虚幻4游戏引擎的安装
- 简述相关分析(Correlation)
- 「HNOI2004」 宠物收养所 - 平衡树Splay
- html 高度塌陷,前端高度塌陷问题
- 关于电商秒杀系统中防超卖、以及高性能下单的处理方案简述
- Do it for success
- 温度上报实时监控项目——客户端
- 用科技解决亿万人吃饭难题,中国团队入围工业工程界「诺贝尔奖」
- simulink如何解非线性方程
- 移动资费:是0.07元/分钟还是0.60元/分钟?
- 给ubuntu server 16.04.6打preempt rt补丁
- CSP-J-2010-接水问题
热门文章
- 【图论】中国邮递员问题、平面图上最大割问题的多项式时间算法
- 小白菜病害检测图像数据集介绍
- python | plt.scatter画圆形或者方框——没有填充色、边框颜色设置
- 回溯法之活动安排问题
- java微博源码_基于jsp的微博-JavaEE实现微博 - java项目源码
- 装VMware后在主机找不到VMnet1和VMnet8问题(巨详细已解决)
- 信息系统开发(JAVA)设计一个银行账户类
- 为什么要学网络安全?如何学习网络安全?这3个理由告诉你(自己整理的50G网安资料)
- 基于 K-means 算法实现的文本聚类(干货)
- GANs:生成对抗网络系列及应用