名前解決に問題があります。Active Directory サーバーに接続しようとしています。SRV レコードから LDAP サーバー アドレスを正常に取得できます。次に、DNS 名を IP アドレスに解決しようとしましたが、失敗しました。
<?php
echo 'example.com.:' . PHP_EOL;
echo gethostbyname('example.com.');
echo PHP_EOL;
echo 'dc1.veracomp.local.:' . PHP_EOL;
echo gethostbyname('dc1.my-company.local.');
echo PHP_EOL;
echo 'nslookup dc1.my-company.local.:' . PHP_EOL;
echo `nslookup dc1.my-company.local.`;
example.com は正しく解決され、数秒後に IP アドレスの代わりにgethostbyname('dc1.my-company.local.')
返されて失敗します。dc1.my-company.local.
それでも、同じ PHP スクリプトで nslookup を呼び出して、ドメイン名を正しく解決できます...:
example.com.:
93.184.216.119
dc1.my-company.local.:
dc1.my-company.local.
nslookup dc1.my-company.local.:
Server: xxx.xxx.254.117
Address: xxx.xxx.254.117#53
Name: dc1.my-company.local
Address: 192.168.12.21
ここで何が問題なのですか?
編集:私が抱えている本当の問題は、またはに接続できるが、に接続できないということであるため、名前解決を求めています。ldap://192.168.12.21
ldap://dc1.my-company.pl
ldap://dc1.my-company.local
残念ながら、_ldap._tcp.my-company.pl の SRV レコードはローカル アドレスのみを返します。.pl アドレスをハードコーディングしたくありません。また、Zend_Ldap にオプションとして渡す前にローカル アドレスを手動で解決しなければならない理由がわかりませんhost
。