Как получить IP-адрес контроллера домена - PullRequest
2 голосов
/ 29 января 2009

Как получить IP-адрес контроллера домена программно, используя C#?

Ответы [ 3 ]

5 голосов
/ 29 января 2009

Вот как бы я это сделал.

Вам потребуется использовать System.Net и System.DirectoryServices.

// get root of the directory data tree on a directory server
DirectoryEntry dirEntry = new DirectoryEntry("LDAP://rootDSE");
// get the hostname of the directory server of your root (I'm assuming that's what you want)
string dnsHostname = dirEntry.Properties["dnsHostname"].Value.ToString();
IPAddress[] ipAddresses = Dns.GetHostAddresses(dnsHostname);
3 голосов
/ 07 февраля 2009

Спасибо всем,

Я сделал это, как в этом коде

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Net;
    using System.Net.Sockets;
    using System.DirectoryServices.AccountManagement;
    using System.DirectoryServices.ActiveDirectory;
public doIt()
        {
            DirectoryContext mycontext = new DirectoryContext(DirectoryContextType.Domain,"project.local");
            DomainController dc = DomainController.FindOne(mycontext);
            IPAddress DCIPAdress = IPAddress.Parse(dc.IPAddress);
        }

Еще раз спасибо

1 голос
/ 29 января 2009

Ну вот общий рабочий процесс, как получить его, как описано на сайте MS:

http://support.microsoft.com/kb/247811

Вот ссылка из PInvoke.net для вызова функции DsGetDcName , на которую есть ссылка:

http://pinvoke.net/default.aspx/netapi32/DsGetDcName.html

Вы можете потерпеть неудачу и выполнить необработанный запрос DNS A Record, как описано в первой ссылке, но я думаю, что вызов PInvoke должен помочь.

Надеюсь, это поможет,

Mike

...