Для этого можно воспользоваться классом DirectorySearcher из пространства имен System.DirectoryServices и выполнить поиск объектов с атрибутом "operatingsystem" по указанным IP-адресам.
Вот пример кода на C#, который позволяет получить список компьютеров из Active Directory в заданном диапазоне IP-адресов:
```csharp
using System;
using System.DirectoryServices;
class Program
{
static void Main()
{
string startIp = "10.62.39.66";
string endIp = "10.62.39.69";
string ldapPath = "LDAP://CN=Computers,DC=mydomain,DC=com";
DirectoryEntry entry = new DirectoryEntry(ldapPath);
DirectorySearcher searcher = new DirectorySearcher(entry);
searcher.Filter = $"(&(objectCategory=computer)(operatingsystem=*))(lastLogonTimestamp=*))";
SearchResultCollection results = searcher.FindAll();
foreach (SearchResult result in results)
{
string computerName = result.Properties["name"][0].ToString();
string ipAddress = result.Properties["operatingsystem"][0].ToString();
if (IsWithinIpRange(ipAddress, startIp, endIp))
{
Console.WriteLine(computerName);
}
}
}
static bool IsWithinIpRange(string ip, string startIp, string endIp)
{
byte[] ipBytes = IPAddress.Parse(ip).GetAddressBytes();
byte[] startIpBytes = IPAddress.Parse(startIp).GetAddressBytes();
byte[] endIpBytes = IPAddress.Parse(endIp).GetAddressBytes();
for (int i = 0; i < 4; i++)
{
if (ipBytes[i] < startIpBytes[i] || ipBytes[i] > endIpBytes[i])
{
return false;
}
}
return true;
}
}
```
Замените "mydomain" в переменной ldapPath на имя вашего домена. В данном примере мы получаем список компьютеров со свойством operatingsystem и их IP-адресами из заданного диапазона.