
`ldap_first_attribute` 함수는 LDAP 검색 결과의 첫 번째 속성을 반환합니다. 이 함수는 속성이 있는지 여부에 관계없이 항상 첫 번째 속성을 반환합니다. 속성이 없을 경우 NULL을 반환합니다.
이 함수를 사용할 때 주의할 점은, LDAP 검색 결과의 속성이 여러 개인 경우 첫 번째 속성이 항상 첫 번째 속성이 아닐 수 있다는 것입니다. 예를 들어, LDAP 검색 결과의 속성이 "이름", "이메일", "전화번호" 순서로 존재하는 경우, `ldap_first_attribute` 함수는 "이름" 속성을 반환하지만, 첫 번째 속성이 실제로 "이메일" 속일 수 있습니다.
이러한 문제를 해결하기 위해, LDAP 검색 결과의 속성을 모두 가져와야 합니다. `ldap_get_attributes` 함수를 사용하여 LDAP 검색 결과의 속성을 모두 가져올 수 있습니다.
예를 들어, 다음과 같이 코드를 작성할 수 있습니다.
#hostingforum.kr
c
LDAP* ld;
BerValue* attr;
int count;
// LDAP 검색 결과를 가져옵니다.
ld = ldap_search_ext_s(ld, "dc=example,dc=com", LDAP_SCOPE_SUBTREE, "(objectClass=*)", NULL, 0, NULL, NULL, NULL, 0, NULL, NULL);
// LDAP 검색 결과의 속성을 모두 가져옵니다.
attr = ldap_get_attributes(ld, ldap_first_entry(ld));
// 속성을 반복하여 가져옵니다.
while (attr != NULL) {
// 속성 이름을 가져옵니다.
char* attr_name = ldap_attr_name(attr);
// 속성 값을 가져옵니다.
BerValue* value = ldap_first_value(attr);
// 속성 값을 반복하여 가져옵니다.
while (value != NULL) {
// 속성 값을 출력합니다.
printf("%s: %sn", attr_name, ldap_value_string(value));
// 다음 속성 값을 가져옵니다.
value = ldap_next_value(attr);
}
// 다음 속성을 가져옵니다.
attr = ldap_next_attribute(ld, ldap_first_entry(ld), attr);
}
// LDAP 검색 결과를 해제합니다.
ldap_unbind_ext_s(ld, NULL, NULL);
이 코드는 LDAP 검색 결과의 속성을 모두 가져와, 속성 이름과 속성 값을 출력합니다.
2025-03-10 21:20