개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.20 20:21

LDAP 조회에 대한 질문

목록
  • 알고리즘광 23시간 전 2025.03.20 20:21 새글
  • 3
    1
제가 현재 LDAP 서버와 연동하여 데이터를 조회하는 중입니다.

LDAP 서버와 연동하여 데이터를 조회하는 함수인 ldap_get_values()를 사용하는데,

이 함수의 결과는 LDAP 검색 결과를 나타내는 배열을 반환합니다.

여기서 제가 궁금한 점은, 이 함수의 결과 배열에서 각 항목은 어떤 구조로 구성되어 있는지 궁금합니다.

배열의 각 항목은 어떤 정보를 포함하고 있으며,

이 정보를 어떻게 접근하거나 처리할 수 있는지 알려주시면 감사하겠습니다.

예를 들어, 다음은 LDAP 서버와 연동하여 사용자 정보를 조회한 결과입니다.

c

LDAP *ld;

 BerValue *bv;

 int rc;



ld = ldap_init("localhost", 389);

if (ld == NULL) {

    printf("LDAP 연결 실패n");

    return 1;

}



bv = ldap_get_values(ld, "dc=example,dc=com", "cn");

if (bv == NULL) {

    printf("LDAP 조회 실패n");

    return 1;

}



이 경우, `bv` 변수는 LDAP 검색 결과를 나타내는 배열을 반환합니다.

이 배열의 각 항목은 어떤 정보를 포함하고 있으며,

이 정보를 어떻게 접근하거나 처리할 수 있는지 알려주시면 감사하겠습니다.

예를 들어, `bv[0]`은 어떤 정보를 나타내는지 알려주시면 좋겠습니다.

또한, 이 함수의 결과 배열을 어떻게 처리하는지 알려주시면 감사하겠습니다.

예를 들어, 배열의 각 항목을 하나씩 접근하고 처리하는 방법은 어떻게 되는지 알려주시면 좋겠습니다.

감사합니다.

    댓글목록

    profile_image
    나우호스팅  23시간 전



    LDAP 서버와 연동하여 데이터를 조회하는 함수인 ldap_get_values()의 결과 배열은 LDAP 검색 결과를 나타내는 BerValue 구조체의 배열입니다.

    각 항목은 LDAP 검색 결과의 하나의 값으로, 예를 들어 사용자 이름, 이메일 주소, 전화번호 등이 포함될 수 있습니다.

    이 정보를 접근하거나 처리하려면 다음과 같은 방법을 사용할 수 있습니다.

    1. 배열의 각 항목을 하나씩 접근할 수 있습니다. 예를 들어, `bv[0]`은 첫 번째 항목을 나타내며, `bv[1]`은 두 번째 항목을 나타냅니다.
    2. 각 항목의 값을 얻으려면 `bv[i].bv_val`을 사용할 수 있습니다. 예를 들어, `bv[0].bv_val`은 첫 번째 항목의 값을 나타냅니다.
    3. 각 항목의 길이를 얻으려면 `bv[i].bv_len`을 사용할 수 있습니다. 예를 들어, `bv[0].bv_len`은 첫 번째 항목의 길이를 나타냅니다.
    4. 각 항목을 해제하려면 `ber_bvfree()` 함수를 사용할 수 있습니다. 예를 들어, `ber_bvfree(bv[0])`은 첫 번째 항목을 해제합니다.

    예를 들어, 다음 코드는 LDAP 서버와 연동하여 사용자 정보를 조회한 결과에서 첫 번째 항목의 값을 얻고, 길이를 얻고, 해제하는 방법을 보여줍니다.

    #hostingforum.kr
    c
    
    LDAP *ld;
    
    BerValue *bv;
    
    int rc;
    
    
    
    ld = ldap_init("localhost", 389);
    
    if (ld == NULL) {
    
        printf("LDAP 연결 실패n");
    
        return 1;
    
    }
    
    
    
    bv = ldap_get_values(ld, "dc=example,dc=com", "cn");
    
    if (bv == NULL) {
    
        printf("LDAP 조회 실패n");
    
        return 1;
    
    }
    
    
    
    // 첫 번째 항목의 값을 얻기
    
    printf("첫 번째 항목의 값: %sn", bv[0].bv_val);
    
    
    
    // 첫 번째 항목의 길이를 얻기
    
    printf("첫 번째 항목의 길이: %dn", bv[0].bv_len);
    
    
    
    // 첫 번째 항목을 해제하기
    
    ber_bvfree(bv[0]);
    
    
    
    // 배열을 해제하기
    
    ber_bvfree(bv);
    
    


    이 코드는 LDAP 서버와 연동하여 사용자 정보를 조회한 결과에서 첫 번째 항목의 값을 얻고, 길이를 얻고, 해제하는 방법을 보여줍니다.

    2025-03-20 20:22

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 5,211건 / 4 페이지

검색

게시물 검색