📄 search_st.c
字号:
#include "ldap.h"
#include "stdio.h"
int main()
{
LDAP *ld;
LDAPMessage *res,*e;
int i,version;
char *server;
int *port;
char *dn;
char *a;
BerElement *ptr;
char **vals;
char **ppValue = NULL;
char *sdn;
server="192.168.3.3";
port = 389;
struct timeval timeout;
if( (ld = ldap_open(server, port )) == NULL )
{
printf("失败");
exit( 1 );
}
version = LDAP_VERSION3;
ldap_set_option( ld, LDAP_OPT_PROTOCOL_VERSION,&version);
if(ldap_simple_bind_s(ld,"cn=root,dc=starxing,dc=com","secret")!=LDAP_SUCCESS)
{
ldap_perror( ld, "ldap_simple_bind_s" );
exit( 1 );
}
sdn="dc=starxing,dc=com";
timeout.tv_sec = 0;
timeout.tv_usec = 50;
rc_search = ldap_search_st(ld, sdn, LDAP_SCOPE_SUBTREE, "(objectclass=*)",
NULL, 0, &timeout, &res);
if (rc_search != LDAP_SUCCESS)
{
printf("ldap_search_st: %s\n", ldap_err2string(rc_search));
ldap_msgfree(res);
ldap_unbind(ld);
return -1;
}
for (e = ldap_first_entry(ld, res); e!=NULL;
e = ldap_next_entry(ld, entry))
{
dn = ldap_get_dn(ld, e);
printf ("dn: %s \n", dn);
ldap_memfree(dn);
for (attrname = ldap_first_attribute(ld, e, &ptr); attrname != NULL;
attrname = ldap_next_attribute(ld, e, ptr))
{
values = ldap_get_values_len(ld, e, a);
for (i = 0; vals[i] != NULL; i++)
{
printf(" %s ",vals[i]);
}
ldap_value_free_len(vals);
}
if (ptr != NULL)
{
ber_free(ptr, 0);
}
printf("\n");
}
ldap_msgfree(res);
ldap_unbind(ld);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -