实验2-多任务网段扫描实验

该代码段展示了一个Windows应用,用于输入IP地址范围并进行扫描。用户输入地址前缀、起始和终止值,程序尝试解析每个IP并获取其主机名。如果输入错误或IP不在线,程序会显示相应提示。扫描结果包括IP、扫描用时和主机DNS名称。
摘要由CSDN通过智能技术生成
<Window x:Class="ip.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:ip"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <Label Content="扫描的ip地址范围"  HorizontalAlignment="Left" Margin="45,32,0,0" VerticalAlignment="Top" RenderTransformOrigin="-0.218,-0.594"/>
        <Label Content="地址前缀:" x:Name="ip" HorizontalAlignment="Left" Margin="62,92,0,0" VerticalAlignment="Top"/>
        <Label Content="起始值:" x:Name="begin" HorizontalAlignment="Left" Margin="320,92,0,0" VerticalAlignment="Top"/>
        <Label Content="终止值:"  x:Name="end" HorizontalAlignment="Left" Margin="510,92,0,0" VerticalAlignment="Top" RenderTransformOrigin="1.025,-0.219"/>
        <Button Content="开始扫描" Click="Button_Click" HorizontalAlignment="Left" Margin="669,93,0,0" VerticalAlignment="Top" Width="71" Height="29"/>
        <TextBox HorizontalAlignment="Left" x:Name="text1" Height="23" Margin="151,96,0,0" TextWrapping="Wrap" Text="192.168.1." VerticalAlignment="Top" Width="120"/>
        <TextBox HorizontalAlignment="Left" x:Name="text2" Height="23" Margin="378,96,0,0" TextWrapping="Wrap" Text="100" VerticalAlignment="Top" Width="79"/>
        <TextBox HorizontalAlignment="Left" x:Name="text3" Height="23" Margin="573,96,0,0" TextWrapping="Wrap" Text="109" VerticalAlignment="Top" Width="72"/>
        <Label x:Name="error" Content="IP地址有错,请更正!" HorizontalAlignment="Left" Margin="45,161,0,0" VerticalAlignment="Top" Width="681" Background="#FFD43939"  Foreground="#FFF3ECEC" Visibility="Hidden" HorizontalContentAlignment="Center"/>
        <DockPanel Margin="10 210 10 10">
            <ScrollViewer>
                <StackPanel Background="White" >
                    <TextBlock x:Name="ips" Margin="0 10 0 0" TextWrapping="Wrap"/>
                </StackPanel>
            </ScrollViewer>
        </DockPanel>
    </Grid>
</Window>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Net.Sockets;
namespace ip
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            /*IPHostEntry host = Dns.GetHostEntry("");
            StringBuilder sb = new StringBuilder();*/

            string myips = "";
            IPHostEntry host;          //= Dns.GetHostEntry(myips);
            string hostname;           //= host.HostName;
            StringBuilder sb = new StringBuilder();
            for (int i=int.Parse(text2.Text); i <= int.Parse(text3.Text);i++)
            {
                if(int.Parse(text2.Text)> int.Parse(text3.Text)){
                    tips();
                    break;
                }
                else{ 
                DateTime timeBegin = DateTime.Now;//记录开始时间
                myips = text1.Text + i;

                try
                {
                    host = Dns.GetHostEntry(myips);
                    hostname = host.HostName;
                }
                catch {
                    hostname = "(不在线)";
                }
               if (hostname == "bogon")
                {
                    hostname = "(不在线)";
                }

                DateTime timeEnd = DateTime.Now;//记录结束时间
                TimeSpan timeSpan = timeEnd - timeBegin;//时间间隔
                sb.AppendLine("扫描地址:"+myips+",扫描用时:"+timeSpan.TotalMilliseconds+ "毫秒"+ ",主机DNS名称:" +hostname);
            }
            ips.Text = sb.ToString();
            }
        }

        public void tips()//显示输入错误的信息
            {
                error.Visibility = Visibility.Visible;
            }

           

            /* IPAddress[] ipAddresses = host.AddressList;
             foreach (IPAddress ip in ipAddresses) { 
                sb.AppendLine(ip.ToString());
              }*/

        }

    }
   

 看个乐呵就行》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值