2016-10-06 43 views
1

連接到當連接到LDAP服務器的LDAP服務器,可以提供用空格分隔多個主機:檢索你在PHP

$resource = ldap_connect('ldap://dc01.corp.acme.org ldap://dc02.corp.acme.org'); 

但是,有沒有方法來檢索哪一個實際上是成功綁定後使用?

+0

您可以使用['ldap_get_option'](http://php.net/manual/en/function.ldap-get-option.php )與'LDAP_OPT_HOST_NAME'。 –

+0

不幸的是,這會返回兩個主機名與刪除的協議:'dc01.corp.acme.org:389 dc02.corp.acme.org:389' –

+0

啊,太糟糕了。我以前沒有嘗試過,但認爲它看起來很有希望。 –

回答

1

不幸的是沒有真正的好方法。沒有通過檢查的RootDSE的AD特定的方式:

$con = ldap_connect('ldap://dc1 ldap://dc2'); 
ldap_set_option($con, LDAP_OPT_PROTOCOL_VERSION, 3); 
ldap_set_option($con, LDAP_OPT_REFERRALS, 0); 
ldap_bind($con, '[email protected]', 'correct-horse-battery-staple'); 

$sr = ldap_read($con, '', 'objectClass=*', ['dnshostname']); 
$entry = ldap_get_entries($con, $sr); 

// This is the DC we are on... 
echo $entry[0]['dnshostname'][0];