C# ping 局域网扫描

来源:互联网 发布:mp3铃声制作软件 编辑:程序博客网 时间:2024/04/28 10:03



using System;using System.Collections.Generic;using System.Globalization;using System.Linq;using System.Net;using System.Net.NetworkInformation;using System.Net.Sockets;using System.Text;using System.Windows.Forms;namespace 局域网扫描{    public partial class FrmMain : Form    {        public FrmMain()        {            InitializeComponent();        }        private void StartPing(string startIp)        {            var myHostIp = startIp;            var ipDuan = myHostIp.Substring(0, myHostIp.LastIndexOf('.'));            //枚举网段计算机            for (var i = 1; i <= 255; i++)            {                               var myPing = new Ping();                myPing.PingCompleted += _myPing_PingCompleted;                var pingIp = ipDuan + "." + i.ToString(CultureInfo.InvariantCulture);                myPing.SendAsync(pingIp, 1000, null);            }        }        private void button1_Click(object sender, EventArgs e)        {            listView1.Items.Clear(); ;            StartPing(textBox1.Text);            //StartPing("202.118.83.23");            ////获取本地机器名             //var myHostName = Dns.GetHostName();            ////获取本机IP             //var hostIps = Dns.GetHostEntry(myHostName).AddressList;            //var ipv4S = hostIps.Where(ip => !ip.IsIPv6LinkLocal).ToList();            //var myHostIp = ipv4S[0].ToString();            ////截取IP网段            //var ipDuans = ipv4S.Select(ip => ip.ToString().Remove(myHostIp.LastIndexOf('.'))).ToList();                        ////枚举网段计算机            //for (var i = 1; i <= 255; i++)            //{            //    foreach (var ipDuan in ipDuans)            //    {            //        var myPing = new Ping();            //        myPing.PingCompleted += _myPing_PingCompleted;            //        var pingIp = ipDuan + "." + i.ToString(CultureInfo.InvariantCulture);            //        myPing.SendAsync(pingIp, 1000, null);            //    }            //}        }        //向ListBox添加扫描出的计算里信息        void _myPing_PingCompleted(object sender, PingCompletedEventArgs e)        {            if (e.Reply.Status == IPStatus.Success)            {                var sb = new StringBuilder();                sb.AppendLine(e.Reply.Address.ToString());                listView1.Items.Add(new ListViewItem(sb.ToString()));            }        }        private void button2_Click(object sender, EventArgs e)        {            var ip=IPAddress.Parse("127.0.0.1");            for (int i = 90; i < 100; i++)            {                var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);                            IPEndPoint iep = new IPEndPoint(ip, 3600);                socket.BeginConnect(iep, new AsyncCallback(Connect), socket);            }        }        void Connect(IAsyncResult ar)        {            listView2.Items.Add(ar.IsCompleted.ToString());        }    }}


原创粉丝点击