在Go
应用程序客户端中发出HTTP请求。我知道发出请求的客户的IP地址。
是否可以通过LDAP查询从Active Directory中通过IP地址了解用户信息(用户名,电子邮件等)?我需要使用哪种过滤器?
l, err := ldap.Dial("tcp", fmt.Sprintf("%s:%d", "ldap.example.com", 389))
if err != nil {
log.Fatal(err)
}
defer l.Close()
searchRequest := ldap.NewSearchRequest(
"dc=example,dc=com", // The base dn to search
ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false,
"(&(objectClass=organizationalPerson))", // The filter to apply
[]string{"dn", "cn"}, // A list attributes to retrieve
nil,
)
sr, err := l.Search(searchRequest)
if err != nil {
log.Fatal(err)
}
for _, entry := range sr.Entries {
fmt.Printf("%s: %v\n", entry.DN, entry.GetAttributeValue("cn"))
}
答案 0 :(得分:1)
Active Directory不存储每个人使用的IP或计算机名称。尝试将用户与计算机匹配非常困难,因为一个人通常可以从任何计算机登录。
如果您真的想要这些信息,可以通过以下几种方式:
\\IPAddress\c$\Users
并检查最近使用的配置文件。