<% require 'ldap' require 'uri' basedn = '' conn = '' f = File.new('/etc/openldap/ldap.conf', 'r') f.readlines.each do |line| line = line.strip next if line =~ /^#/ next if line == '' line = line.split if line[0] == 'BASE' basedn = line[1] elsif line[0] == 'URI' line.shift line.each do |uri| uri = URI.parse(uri) begin if uri.scheme == 'ldaps' if ! uri.port uri.port = 636 end conn = LDAP::SSLConn.new(uri.host, uri.port) else if ! uri.port uri.port = 389 end conn = LDAP::Conn.new(uri.host, uri.port) end conn.bind break rescue LDAP::ResultError next end end end end f.close filter = "(&(objectClass=ipHost)(cn=#{hostname})(l=*))" conn.search(basedn, LDAP::LDAP_SCOPE_SUBTREE, filter, ['l']) { |entry| %><%= entry.vals('l')[0] %><% } -%>