C#实现网段扫描

摘要

想必大家对小榕时光等扫描器都非常熟悉了,有没有自己写一个的冲动。最近微软推实施了.NET战略方案,C#是主推语言,你们是否有兴趣用C#来实现对局域网IP地址的扫描,尝试一下自己写的快乐,那么请跟我来。

正文

1.先介绍一下使用的类:

DNS类:在.net中的System.net命名空间下,主要的功能是从 Internet 域名系统 (DNS) 检索关于特定主机的信息。

IPHostEntry类:将一个域名系统 (DNS) 主机与一组别名和一组匹配的 IP 地址关联,和DNS类一起使用。

IPAddress 类:IP 网络上的地址。

使用的命名空间有:

System.Net 命名空间为当前网络上使用的多种协议提供了简单的编程接口.

System.IO命名空间包含允许在数据流和文件上进行同步和异步读取及写入的类型。

System.Thread 命名空间主要是用来多线程序编程。

程序实现以下几个功能:

2.获取本地主机IP地址

/// <summary>
/// 按扭查询本机ip
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, System.EventArgs e)
{
IPHostEntry myHost = new IPHostEntry();
try
{
this.richTextBox1.Text = "";
// Dns.GetHostName()获取本地计算机的主机名
// Dns.GetHostByName()获取指定 DNS 主机名的 DNS 信息
//得到本地主机的DNS信息
myHost = Dns.GetHostByName(Dns.GetHostName());
//显示本地主机名
textBox1.Text = myHost.HostName.ToString();
//显示本地主机的IP地址表
for(int i=0; i<myHost.AddressList.Length;i++)
{
richTextBox1.AppendText("本地主机IP地址->" + myHost.AddressList[i].ToString()+ "\r");
}
}
catch(Exception error)
{
MessageBox.Show(error.Message);
}

}

3.远程查询

private void button2_Click(object sender, System.EventArgs e)
{
this.richTextBox1.Text = "";
IPHostEntry myDnsToIP = new IPHostEntry();
//Dns.Resolve 方法: 将 DNS 主机名或以点分隔的四部分表示法格式的
// IP 地址解析为 IPHostEntry实例
myDnsToIP =Dns.Resolve(textBox2.Text.ToString());
//显示此域名的IP地址的列表
for(int i=0;i<myDnsToIP.AddressList.Length;i++)
{
richTextBox1.AppendText(textBox2.Text + "的IP地址是" + myDnsToIP.AddressList[i].ToString() + "\r");
}

}

4.实现网段的扫描

实现网段的扫描,确定网络中正在使用的主机数目。这里使用了多线程技术,增加了一个线程,为了防止程序扫描的时间过长,影响程序的响应。不过在.net中由于使用了垃圾收集技术所以对线程的控制也不是很复杂的。

private void button3_Click(object sender, System.EventArgs e)
{
this.richTextBox1.Text = "";
//Thread 类: 创建并控制线程
//Thread thScan = new Thread(new ThreadStart(ScanTarget));
Thread thScan = new Thread(new ThreadStart(ScanTarget));
//Thread.Start 方法:启动线程
thScan.Start();
}

private void ScanTarget()
{
//构造IP地址的31-8BIT 位,也就是固定的IP地址的前段
// numericUpDown1是定义的System.Windows.Forms.NumericUpDown控件
string strIPAddress = numericUpDown1.Text + "." + numericUpDown2.Text + "." + numericUpDown3.Text + ".";
//开始扫描地址
int nStrat = Int32.Parse(numericUpDown4.Text);
//终止扫描地址
int nEnd =Int32.Parse(numericUpDown5.Text);
//扫描的操作
for(int i = nStrat; i <= nEnd; i++)
{
string strScanIPAdd = strIPAddress +i.ToString();
//转换成IP地址
IPAddress myScanIP = IPAddress.Parse(strScanIPAdd);
try
{
//你可以加入自已的,增强功能
// Dns.GetHostByAddress 方法: 根据 IP 地
//址获取 DNS 主机信息。
IPHostEntry myScanHost = Dns.GetHostByAddress(myScanIP);
//获取主机的名
string strHostName =myScanHost.HostName.ToString();
richTextBox1.AppendText(strScanIPAdd + "->" + strHostName + "\r");
}
catch(Exception error)
{
MessageBox.Show(error.Message);
}
}
}

到此为止一个简单用C#实现扫描器的主要功能就完成了,试一下你可以看到你的网络上的主机,有没有成就感了:)

时间: 2024-09-02 14:59:04

C#实现网段扫描的相关文章

如何实现跨网段扫描IP地址

问题描述 如何实现跨网段扫描IP地址,以确定哪些IP地址在用.用ping的话,开防火墙就无效了,有没有其他的方案 解决方案 解决方案二:网段与网段之间实现访问了么?解决方案三:如果你能接入那个网段的交换机那就简单了,如果不能那至少要能与那个网段的的一台主机通讯,比如写个服务部署在那台主机上或用telnet什么的,让它用arp命令扫描完IP再把结果告诉你才行.解决方案四:各网段都能控制,公司内部网

openvas 网段扫描-请问大家有没有用过openvas漏洞扫描器,扫描设置问题

问题描述 请问大家有没有用过openvas漏洞扫描器,扫描设置问题 最近想用扫描器扫描某一网段的主机,不知为何一直显示1%的进度,大家用过没,怎么设置啊?我在target中设置为192.168.133.0/24,不知这样行吗?对单个的主机或是指定多个主机ip均可以扫描,但是,对某个网段内的所有主机扫描该如何设置啊

C#中实现网段扫描的代码_C#教程

摘要  想必大家对小榕时光等扫描器都非常熟悉了,有没有自己写一个的冲动.最近微软推实施了.NET战略方案,C#是主推语言,你们是否有兴趣用C#来实现对局域网IP地址的扫描,尝试一下自己写的快乐,那么请跟我来.  正文  1.先介绍一下使用的类:  DNS类:在.net中的System.net命名空间下,主要的功能是从 Internet 域名系统 (DNS) 检索关于特定主机的信息.  IPHostEntry类:将一个域名系统 (DNS) 主机与一组别名和一组匹配的 IP 地址关联,和DNS类一起

C#查本机地址和网段扫描

using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Net;using System.Threading; namespace WindowsApplication1{ /// <summary> /// Form1 的摘要说明. /// </summary> public clas

网站渗透测试原理及详细过程

网站渗透测试原理及详细过程 原文地址:http://blog.csdn.net/kingmax54212008/article/details/11833059 渗透测试(Penetration Testing)目录 零.前言 一.简介 二.制定实施方案 三.具体操作过程 四.生成报告 五.测试过程中的风险及规避 参考资料 FAQ集     零.前言 渗透测试在未得到被测试方授权之前依据某些地区法律规定是违法行为. 这里我们提供的所有渗透测试方法均为(假设为)合法的评估服务,也就是通常所说的道德

网络神兵WinArpAttacker 3.7

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 网络神兵 WinArpAttacker 3.7 比网络终结者_P2P终结者_网络执法官_聚生网管等强 是网管的一个好工具,可以查看攻击者的IP地址及MAC地址及其攻击行为,还有自我保护功能,自动解除ARP欺骗的MAC绑定. 无需安装,直接运行WinArpAttacker.exe 不过需要winpcap支持,如果没有请先安装WinPcap_3_

今天下午14:00,专家在线解决网站挂马难题

中介交易 SEO诊断淘宝客 站长团购 云主机 技术大厅 网站被挂马现象越来越严重,今天下午14:00,专家在线解决网站挂马难题  请站长们提前加群听课,先加先占位,请大家保持在线状态.谢谢合作.群号:3968171 什么是ARP 地址解析协议(Address Resolution Protocol,ARP)是在仅知道主机的IP地址时确定其物理地址的一种协议.因IPv4和以太网的广泛应用,其主要用作将IP地址翻译为以太网的MAC地址,但其也能在ATM和FDDIIP网络中使用.从IP地址到物理地址的

比特币勒索:你的数据库是如何成为黑客“挖矿机”的

摘要: 2016年是勒索病毒泛滥的年份,而2017年"挖矿"随着电子货币价格的一路攀升,已成为黑客的新宠.黑客多利用"肉鸡"(被控制的电脑)实施挖矿.挖矿可以赚取电子货币,黑客直接通过电子货币获利(比特币.罗门币等).据统计2017年,仅黑客组织隐匿者就利用肉鸡共挖到2010枚门罗币,相当于61万美元.有理由相信2017年黑客通过挖矿净利润在百万美元以上. "挖矿"虽然不像勒索病毒那样让被害者直接遭受数据丢失的损失.但会悄悄潜伏在被害者的机器中.

dos之for命令实现扫描网段的端口,用于辅助解决ARP挂马_DOS/BAT

不需要任何工具,dos命令扫描一个网段的全部端口!  在win2000下开一个dos窗口,然后执行  for /l %a in (1,1,254) do start /min /low telnet 192.168.0.%a 3389  这样192.168.0.x这个段的所有开放3389端口得主机都会暴露  这条命令执行后  会在任务栏开254个小窗口  然后telnet链接失败的窗口会在大约5秒后自动退出  剩下的窗口就是相对应开放端口的主机了  看一下小窗口的标题可以得知主机的ip地址  如