Как я могу отслеживать активные компьютеры в моей сети в ASP.NET? - PullRequest
0 голосов
/ 15 января 2009

Как узнать, какие машины работают в той же локальной сети, что и мой компьютер, используя ASP.NET?

Ответы [ 3 ]

2 голосов
/ 15 января 2009

Вы можете пропинговать компьютеры в сети.

// addressToPing can be an IPaddress or host name.
// returns a boolean indicating successful ping
public static bool PingComputer (string[] addressToPing)
{
    Ping pingSender = new Ping ();
    PingOptions options = new PingOptions ();

    // Use the default Ttl value which is 128,
    // but change the fragmentation behavior.
    options.DontFragment = true;

    // Create a buffer of 32 bytes of data to be transmitted.
    string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
    byte[] buffer = Encoding.ASCII.GetBytes (data);
    int timeout = 120;
    PingReply reply = pingSender.Send (args[0], timeout, buffer, options);
    return reply.Status == IPStatus.Success;
}   

http://msdn.microsoft.com/en-us/library/system.net.networkinformation.ping.aspx

Вы можете использовать этот код проверки и повторять IP-адреса в вашей локальной сети (for(i = 1; i < 255; i++)). Вам, вероятно, стоит прочитать расчеты по IP-адресу:

http://blogs.msdn.com/knom/archive/2008/12/31/ip-address-calculations-with-c-subnetmasks-networks.aspx

Это называется "пинг-размах". Предполагается, что компьютеры в сети не были настроены на игнорирование ICMP-запросов.

0 голосов
/ 15 января 2009

Если у вас есть возможность установить программное обеспечение для мониторинга на различных компьютерах в сети, мне повезло, если использовать nagios для отслеживания того, какие серверы работают / находятся под большой нагрузкой / не хватает места на диске / и т. д. в производственной сети. Он также имеет хороший веб-интерфейс, для которого вам вообще не понадобится использовать ASP.

Если вам нужно создать что-то домашнее с ASP, я бы использовал nmap для сканирования вашей подсети класса C, а затем распечатывал результаты на вашей странице ASP. Это не очень эффективный метод, но он будет очень простым и гарантированно будет работать (с соответствующими параметрами).

0 голосов
/ 15 января 2009

Я бы подошел к этому в двух частях; страница ASP.NET и постоянно работающая служба.

Постоянно работающий сервис монитора для запросов ARP, чтобы получить четкое представление о том, какие машины активны. Чтобы увидеть ответы ARP, он должен будет выдавать свои собственные запросы ARP. В сетях Windows всегда достаточно свободного трафика (для просмотра компьютеров), чтобы получить очень хорошее представление о том, какие машины активны.

...