目录
1.使用的类
2.获取本地主机IP地址
3.远程查询
4.实现网段的扫描 -------------------------------------------------------------------------------- 正文
1.先介绍一下使用的类:
DNS类:在.net中的System.net命名空间下,主要的功能是从 Internet 域名系统 (DNS) 检索关于特定主机的信息。
IPHostEntry类:将一个域名系统 (DNS) 主机与一组别名和一组匹配的 IP 地址关联,和DNS类一起使用。
IPAddress 类:IP 网络上的地址。
使用的命名空间有:
System.Net 命名空间为当前网络上使用的多种协议提供了简单的编程接口.
System.IO命名空间包含允许在数据流和文件上进行同步和异步读取及写入的类型。
System.Thread 命名空间主要是用来多线程序编程。
程序实现以下几个功能:
2.获取本地主机IP地址
//对Button控件的事件的响应
private void buttion1_click(object sender,System.Event.Args e)
[
IPHostEntry myHost = new IPHostEntry();
Try
[
// 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);
]
]//private 3.远程查询
private void buttion2_click(object Sender,System.EventArgs e)
[ IPHostEntry myDnsToIP = new IPHostEntry();
//Dns.Resolve 方法: 将 DNS 主机名或以点分隔的四部分表示法格式的 // IP 地址解析为 IPHostEntry实例
myDnsToIP =Dns.Resolve(textBox2.Text.ToString());
//显示此域名的IP地址的列表
for(int i=0;i<myDnsToIPAddressList.Length;i++)
[
rich.TextBox1.AppendText(textBox2.Text+”的IP地址是”+myDnsToIP.AddressList[i].ToString()+”\r”);
]
] 4.实现网段的扫描
实现网段的扫描,确定网络中正在使用的主机数目。这里使用了多线程技术,增加了一个线程,为了防止程序扫描的时间过长,影响程序的响应。不过在.net中由于使用了垃圾收集技术所以对线程的控制也不是很复杂的。
private void button3_click(object sender, System.EventArgs e)
[
//Thread 类: 创建并控制线程
Thread thScan = new thread(new ThreadStrart(ScanTarget));
//Thread.Start 方法:启动线程
thScan.Strart();
]
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#实现网段扫描的更多相关文章

  1. [端口扫描]S扫描器跨网段扫描

    最近看了下端口扫描,用了几款扫描器,nmap啊,x-sacn等.之前很少关注安全方面的东西,所以也比较菜. 其中有一款叫做 "S扫描器"的,扫描速度非常快,可以大网段的扫描,几十万 ...

  2. 小白日记12:kali渗透测试之服务扫描(二)-SMB扫描

    SMB扫描 Server Message Block 协议.与其他标准的TCP/IP协议不同,SMB协议是一种复杂的协议,因为随着Windows计算机的开发,越来越多的功能被加入到协议中去了,很难区分 ...

  3. Kali学习笔记14:SMB扫描、SMTP扫描

    SMB(Server Message Block)协议,服务消息块协议. 最开始是用于微软的一种消息传输协议,因为颇受欢迎,现在已经成为跨平台的一种消息传输协议. 同时也是微软历史上出现安全问题最多的 ...

  4. Linux shell编写端口扫描脚本

    Linux shell编写端口扫描脚本 需求: 扫描特定主机 扫描特定主机的特定端口 扫描特定网段 扫描特定网段中哪些主机开放了特定的端口 源码如下: #/bin/bash #该脚本用于对特定目标主机 ...

  5. Linux下安装nmap扫描工具

    NMAP是一款流行的网络扫描和嗅探工具,被广泛应用在黑客领域做漏洞探测以及安全扫描,更多的nmap是一个好用的网络工具,在生产和开发中也经常用到,主要做端口开放性检测和局域网信息的查看收集等,不同Li ...

  6. 2019-9-26:渗透测试,基础学习,js正则以及什么是目录扫描,笔记

    js正则表达式,用单个字符串描述或者匹配符合特定语句规则的字符串,相当于一种搜索模式.一些字符序列组合在一起,可以简单也可以复杂模式的,可以去搜索还可以替换 正则表达式语法/表达式/修饰符(可选),例 ...

  7. kali 系列学习03 - 主动扫描

    主动扫描首先考虑使用代理IP保护自己,其次掌握 Nmap 工具使用 第一部分 扫描对方时,最好隐藏一下自己root@kali:/etc# service tor statusUnit tor.serv ...

  8. Find-Vulnerability 自动化探测扫描工具简介

    Fvuln 简介 F-vuln(全称:Find-Vulnerability)是一款自动化探测扫描工具,主要适用于日常安全服务.渗透测试人员和RedTeam红队人员使用 它集合的功能包括: 存活IP探测 ...

  9. Qt实现端口扫描器

    首先展示一下效果: 界面通过Qt设计师做出来的. 主要有两个类. 首先主函数: #include "mainwindow.h" #include <QApplication& ...

随机推荐

  1. 瞄一眼LongAdder(jdk11)

    java版本11.0.1,感觉写得太水了,等心情好的时候再重新编辑一下. LongAdder中的核心逻辑主要由java.util.concurrent.atomic.Striped64维护,作为Str ...

  2. Codeforces989E. A Trance of Nightfall

    $n \leq 200$个平面上的点,$q \leq 200$次询问:重复操作$m \leq 10000$次,到达点$x$的概率最大是多少.操作:一开始选点$P$,不一定要是给定点,可以是平面上任一点 ...

  3. webconfig连接串的使用与用代码写连接串的使用

    原文发布时间为:2008-07-25 -- 来源于本人的百度文章 [由搬家工具导入] 1、使用web.config中设置连接串 在web.config中<configuration>... ...

  4. Metasploit笔记之信息收集命令

    书籍参考:Metasploit渗透指南 Nmap:使用没有时 ubuntu自动提示安装命令 用法: nmap -sS -Pn  192.168.1.0 -sS:执行一次隐秘的tcp扫描 -Pn:不使用 ...

  5. 标准C程序设计七---72

    Linux应用             编程深入            语言编程 标准C程序设计七---经典C11程序设计    以下内容为阅读:    <标准C程序设计>(第7版) 作者 ...

  6. 标准C程序设计七---34

    Linux应用             编程深入            语言编程 标准C程序设计七---经典C11程序设计    以下内容为阅读:    <标准C程序设计>(第7版) 作者 ...

  7. Linux内核解析:进程间通信:管道

    管道的定义管道的用途管道的操作管道非法read与write内核实现解析管道通信原理及其亲戚通信解析父子进程通信解析亲缘关系的进程管道通信解析管道的注意事项及其性质管道有以下三条性质shell管道的实现 ...

  8. Linux 之 Memcached

    Memcached的安装使用 参考教程:[千峰教育] 环境:CentOS 6.8 一.简介: memcached作为高速运行的分布式缓存服务器,具有以下的特点. · 协议简单 · 基于libevent ...

  9. yii框架缓存知识总结(转载)

    缓存是用于提升网站性能的一种即简单又有效的途径.稍微有点规模的网站都会通过存储相对静态的数据至缓存以备所需,这样我们可以省去从数据库查询然后生成这些数据的时间,通过减轻数据库的压力从而提升网站的性能. ...

  10. js 版本号比较方

    function compareVersion(v1, v2) { v1 = v1.split('.') v2 = v2.split('.') const len = Math.max(v1.leng ...