C#遍历局域网IP

说明

遍历局域网IP有很多种方法,这是较快的一种。

开发对等网软件时用到遍历操作。(无服务器,针对局域网的主机都发消息)

代码

using System;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.Net.NetworkInformation;
 
/// <summary>
/// Summary description for Class1
/// </summary>
public class GetNetInfo
{
    public GetNetInfo()
    {
        //
        // TODO: Add constructor logic here
        //
    }
    //遍历局域网ip的方法(速度较快)
    public void EnumComputers()
    {
        try
        {
            for (int i = 1; i <= 255; i++)
            {
                Ping myPing;
                myPing = new Ping();
                myPing.PingCompleted += new PingCompletedEventHandler(_myPing_PingCompleted);
 
                string pingIP = "192.168.1." + i.ToString();
                myPing.SendAsync(pingIP, 1000, null);
            }
        }
        catch
        {
        }
    }
 
    private void _myPing_PingCompleted(object sender, PingCompletedEventArgs e)
    {
        if (e.Reply.Status == IPStatus.Success)
        {
            Console.WriteLine(e.Reply.Address.ToString());
            //Console.WriteLine(e.Reply.Address.ToString() + "|" + Dns.GetHostByAddress(IPAddress.Parse(e.Reply.Address.ToString())).HostName);
        }
 
    }
}
原文地址:https://www.cnblogs.com/shya/p/1905048.html