This script checks your LDAP server from the Internet.
Caveats: If you check TLS/SSL, the port will be forced to 636
if (isset($_REQUEST[submit])) {
if ($_REQUEST[server] == "" || $_REQUEST[port] == "") {
echo "
Please insert a server and its port
";
} else if ($_REQUEST[protocol] == "") {
echo "Please select a protocol
";
} else if ($_REQUEST[bind] == "") {
echo "Please select an authentication
";
} else if ($_REQUEST[bind] == "auth" && $_REQUEST[binddn] == "") {
echo "Please insert a Bind-DN
";
} else if ($_REQUEST[bind] == "auth" && $_REQUEST[bindpw] == "") {
echo "Please insert a Bind-PW
";
} else if ($_REQUEST[basedn] == "") {
echo "Please insert a base DN
";
} else {
echo "Checking connection to " . $_REQUEST[server] . ":";
error_reporting(0);
if ($_REQUEST[tls]) {
# with ldaps:// the port's obsolete 'cos it's forced to 636
echo "636: ";
$_REQUEST[port] = 636;
$ldapconn = ldap_connect("ldaps://$_REQUEST[server]");
} else {
echo $_REQUEST[port] . ": ";
$ldapconn = ldap_connect("$_REQUEST[server]", $_REQUEST[port]);
}
ldap_set_option($ldapconn,LDAP_OPT_PROTOCOL_VERSION, $_REQUEST[protocol]);
ldap_set_option($ldapconn,LDAP_OPT_TIMELIMIT, 20);
if (!$ldapconn) {
echo "Connection failed: ";
echo ldap_err2str(ldap_errno($ldapconn));
echo "";
} else {
echo "Connection successful
";
echo "Binding ";
if ($_REQUEST[bind] == "anon") {
echo "anonymously: ";
$ldapbind = ldap_bind($ldapconn);
} else {
echo "with DN " . $_REQUEST[binddn] . ": ";
$ldapbind = ldap_bind($ldapconn, $_REQUEST[binddn], $_REQUEST[bindpw]);
}
if ($ldapbind) {
echo "Binding successful
";
echo "Showing first entry in " . $_REQUEST[basedn] . ": ";
$ldapsearch = ldap_search($ldapconn, $_REQUEST[basedn], "objectclass=*");
$getentries = ldap_get_entries($ldapconn, $ldapsearch);
echo "" . $getentries[1]["dn"] . "";
} else {
echo "Bind failed -> ";
echo ldap_err2str(ldap_errno($ldapconn));
echo "";
}
ldap_unbind($ldapconn);
}
ldap_close($ldapconn);
}
}
?>