gpt4 book ai didi

java - 使用 IP 地址属性的 LDAP 查询

转载 作者:太空宇宙 更新时间:2023-11-04 07:00:49 26 4
gpt4 key购买 nike

我正在寻找一种使用用户的 IP 地址查询 LDAP 的方法。

当有人使用浏览器时,浏览器会发送其 IP 地址。我想使用该 IP 地址查询 LDAP 以查找该 IP 地址所属的用户名。

我已经成功使用 Java 中的 LDAP 连接到 AD。

最佳答案

请阅读EJP的评论并首先重新考虑您的要求。

无论您为什么想要这个,您都需要采取几个步骤:

  • 查找您的用户所在的上下文(LDAP 容器)。 AD 默认值为 cn=Users,dc=your,dc=domain,dc=com
  • 识别包含 IP 地址的 LDAP 属性(现在假设为 networkAddress)
  • 从 HTTP 请求中检索 IP 地址(例如 String userAddress)
  • 使用过滤器执行(用户)对象查询(&(objectClass=inetOrgPerson)(networkAddress=userAddress))

您的 Java 代码将如下所示(假设您有一个实时 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
}
}

关于java - 使用 IP 地址属性的 LDAP 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22130678/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com