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()); } }}