개발자 Q&A

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

2025.05.29 16:25

LDAP 연동 문제: ldap_get_entries 함수 사용 방법

목록
  • Go매니아 3일 전 2025.05.29 16:25
  • 9
    1
LDAP 연동을 공부 중인데 ldap_get_entries 함수에 대해 궁금한 점이 있습니다.

ldap_get_entries 함수는 LDAP 검색 결과를 얻어오는 함수 인가요? 그리고 이 함수를 사용하여 검색 결과를 얻어오기 위해서는 어떤 형식의 데이터를 입력해야 하나요?

예를 들어, LDAP 서버의 사용자 정보를 검색할 때, 사용자 ID와 비밀번호를 입력해야 하는데, 이때 사용자 ID와 비밀번호는 어떤 형식으로 입력해야 하나요?

혹시 ldap_get_entries 함수를 사용하여 LDAP 검색 결과를 얻어오기 위한 예제 코드가 있을까요?

감사합니다.

    댓글목록

    profile_image
    나우호스팅  3일 전



    ldap_get_entries 함수는 LDAP 검색 결과를 얻어오는 함수입니다. 이 함수를 사용하여 검색 결과를 얻어오기 위해서는 LDAP 서버의 호스트 이름, 포트 번호, 사용자 ID, 비밀번호, 검색 조건을 입력해야 합니다.

    LDAP 서버의 호스트 이름과 포트 번호는 LDAP 서버의 주소로 사용됩니다. 사용자 ID와 비밀번호는 LDAP 서버에 접근하기 위한 인증 정보입니다. 검색 조건은 LDAP 서버에서 검색할 데이터의 필드를 지정합니다.

    예를 들어, LDAP 서버의 사용자 정보를 검색할 때, 사용자 ID와 비밀번호는 다음과 같은 형식으로 입력해야 합니다.

    - 호스트 이름: "ldap.example.com"
    - 포트 번호: 389 (LDAP 기본 포트)
    - 사용자 ID: "cn=admin,dc=example,dc=com"
    - 비밀번호: "password"
    - 검색 조건: "(objectclass=person)"

    ldap_get_entries 함수를 사용하여 LDAP 검색 결과를 얻어오기 위한 예제 코드는 다음과 같습니다.

    #hostingforum.kr
    c
    
    #include 
    
    
    
    int main() {
    
        LDAP *ld;
    
        BerValue *bv;
    
        int rc;
    
        struct berval *bv_array;
    
        LDAPMessage *msg;
    
        int count;
    
        int i;
    
    
    
        // LDAP 서버 연결
    
        ld = ldap_init("ldap.example.com", 389);
    
        if (ld == NULL) {
    
            printf("LDAP 서버 연결 실패n");
    
            return 1;
    
        }
    
    
    
        // LDAP 서버 인증
    
        rc = ldap_bind_s(ld, "cn=admin,dc=example,dc=com", "password", LDAP_AUTH_SIMPLE);
    
        if (rc != LDAP_SUCCESS) {
    
            printf("LDAP 서버 인증 실패n");
    
            ldap_unbind_ext_s(ld, NULL, NULL);
    
            return 1;
    
        }
    
    
    
        // LDAP 검색
    
        bv = ldap_malloc(sizeof(BerValue));
    
        bv->bv_val = ldap_malloc(1024);
    
        bv->bv_len = 1024;
    
        strcpy(bv->bv_val, "(objectclass=person)");
    
    
    
        bv_array = ldap_malloc(sizeof(struct berval));
    
        bv_array->bv_val = ldap_malloc(1024);
    
        bv_array->bv_len = 1024;
    
        strcpy(bv_array->bv_val, "cn");
    
    
    
        rc = ldap_search_ext_s(ld, "dc=example,dc=com", LDAP_SCOPE_SUBTREE, bv->bv_val, bv_array, 0, NULL, NULL, NULL, 0, NULL, &msg);
    
        if (rc != LDAP_SUCCESS) {
    
            printf("LDAP 검색 실패n");
    
            ldap_unbind_ext_s(ld, NULL, NULL);
    
            return 1;
    
        }
    
    
    
        // LDAP 검색 결과 처리
    
        count = ldap_count_entries(ld, msg);
    
        printf("LDAP 검색 결과 개수: %dn", count);
    
    
    
        for (i = 0; i < count; i++) {
    
            printf("LDAP 검색 결과 %d:n", i + 1);
    
            printf("  cn: %sn", ldap_get_values_len(ld, msg, "cn"));
    
        }
    
    
    
        // LDAP 검색 결과 해제
    
        ldap_msgfree(msg);
    
    
    
        // LDAP 서버 연결 해제
    
        ldap_unbind_ext_s(ld, NULL, NULL);
    
    
    
        return 0;
    
    }
    
    


    이 예제 코드는 LDAP 서버에 접속하여 사용자 정보를 검색하고, 검색 결과를 처리합니다. LDAP 서버의 호스트 이름, 포트 번호, 사용자 ID, 비밀번호, 검색 조건을 입력하여 LDAP 검색 결과를 얻어올 수 있습니다.

    2025-05-29 16:26

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

검색

게시물 검색