生活随笔
收集整理的這篇文章主要介紹了
C# ping 局域网扫描
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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());}}
}
總結
以上是生活随笔為你收集整理的C# ping 局域网扫描的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。