0
사용자의 IP 주소를 사용하여 LDAP를 쿼리하는 방법을 찾고 있습니다.IP 주소 속성을 사용하는 LDAP 쿼리
누군가 브라우저를 사용할 때 브라우저는 IP 주소를 전송합니다. 해당 IP 주소를 사용하여 LDAP에 쿼리하여 해당 IP 주소가 속한 사용자 이름을 찾으려고합니다.
저는 이미 LDAP에서 LDAP를 사용하여 LDAP에 연결할 수있었습니다.
사용자의 IP 주소를 사용하여 LDAP를 쿼리하는 방법을 찾고 있습니다.IP 주소 속성을 사용하는 LDAP 쿼리
누군가 브라우저를 사용할 때 브라우저는 IP 주소를 전송합니다. 해당 IP 주소를 사용하여 LDAP에 쿼리하여 해당 IP 주소가 속한 사용자 이름을 찾으려고합니다.
저는 이미 LDAP에서 LDAP를 사용하여 LDAP에 연결할 수있었습니다.
EJP으로 의견을 읽고 먼저 요구 사항을 다시 생각해보십시오.
에 관계없이 의 당신이 원하는 이유, 당신은 몇 가지 단계에 응시해야합니다 :
cn=Users,dc=your,dc=domain,dc=com
입니다.networkAddress
을 가정 해 봅시다)(&(objectClass=inetOrgPerson)(networkAddress=userAddress))
를 사용하여 (사용자) 개체에 대한 쿼리를 수행 (의이 String userAddress
을 가정 해 봅시다)귀하의 자바 코드는 다음과 같을 것이다 (당신이 언급 한대로 라이브 LdapConnection
개체가 가정) :
public void getUserByIp(LdapContext ctx, String userAddress)
{
// Replace with your context and domain name
String userContext = "cn=Users,dc=your,dc=domain,dc=com";
String filter = "(&(objectClass=inetOrgPerson)(networkAddress="+userAddress+"))";
// You are trying to find a single user, so set the controls to return only on instance
SearchControls contr = new SearchControls();
contr.setCountLimit(1L);
try
{
NamingEnumeration<SearchResult> results = ctx.search(userContext, filter, contr);
while (results.hasMore())
{
// User found
SearchResult user = results.next();
} else {
// No user found
}
} catch (NamingException e) {
// If there is more than one result, this error will be thrown from the while loop
}
}
이상한 요구 사항. 사용자는 하나의 IP 주소에서만 로그인 할 수 있습니까? 디렉토리에있는 사용자의 IP 주소도 * 가지고 있습니까? 그렇다면 어떤 속성입니까? – EJP
_browser_는 IP 주소를 보내지 않지만 _server_는 각 요청에 대해 원격 클라이언트 IP를 기록합니다. 믿을만한 것은 아닙니다 : 프록시 (역방향), NAT 등을 생각하십시오. – mvreijn