http://www.hesk.com/demo/index.php?a=add
Сам файл лежит тут
http://yadi.sk/d/7m3e5T4sBufvx
Хочу собрать всю необходимую информацию по пользователю, компьютеру и автоматически при открывании этой странички вставить в формы.
Скрипт получения необходимы данных имеется и полностью он рабочий. Т.е. этим скриптом можно получить Ip адрес, а уже имея Ip адрес получить имя компьютера через dns, по имени компьютера получить кто сейчас залогинен на этом компьютере (берется из базы данных mssql) и получаю все необходимую инфу о пользователе (ФИО, mail и т.д.)
Сам скрипт получения данных такой
<?php
include ("mssql_config.php");
function getRealIpAddr()
{
if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;
}
$ip_address = getRealIpAddr();
$hostname = gethostbyaddr ($ip_address);
$sql= "select u.employeeid , replace(u.username,'***\','') as username, p.name as compname, l.date, p.inventarynumber as invnumber from userlog l, userid u, pc p where l.id in (select MAX(id) from userlog group by pc_id) and l.user_id = u.id and l.pc_id = p.id and l.status = '0' and p.name=replace('".$hostname."','.***.local','') order by l.date desc";
$sql2 = mssql_query($sql);
$sql1=mssql_fetch_array($sql2);
$ldapServer = '192.168.0.1';
$ldapUserToAuth = 'Test01@*.local'; // Любая активная учётка в домене
$ldapUserPasswd = '***';
$ldapBase = 'dc=***, dc=local'; // Откуда начинать поиск (тут во всём домене)
$ldapFilter_user = '(&(objectclass=user)(objectcategory=Person)(samaccountname='. $sql1[1].'))';
$justthese_user = array('samaccountname','displayname','mail', 'department', 'employeeid', 'telephonenumber'); // имена полей, которые необходимо вытащить
$ldapFilter_comp = '(&(objectclass=computer)(cn='. $sql1[2].'))';
$justthese_comp = array('cn','description');
// Connecting to LDAP
$ldapconn = ldap_connect($ldapServer)
or die("Could not connect to $ldapServer");
ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0);
// Авторизация
$ldapbind = ldap_bind($ldapconn, $ldapUserToAuth, $ldapUserPasswd);
$sr_user=ldap_search($ldapconn, $ldapBase, $ldapFilter_user, $justthese_user);
$info_user = ldap_get_entries($ldapconn, $sr_user);
$sr_comp=ldap_search($ldapconn, $ldapBase, $ldapFilter_comp, $justthese_comp);
$info_comp = ldap_get_entries($ldapconn, $sr_comp);
for ($i=0, $c=$info_user['count']; $i<$c; $i++)
{
echo $i. ' ----> ' . $info_user[$i]['displayname'][0] . ' ----> ' . $info_user[$i]['samaccountname'][0];
if (isset($info_user[$i]['mail'][0]))
echo ' ----> '.$info_user[$i]['mail'][0];
if (isset($info_user[$i]['telephonenumber'][0]))
echo ' ----> '.$info_user[$i]['telephonenumber'][0];
if (isset($info_user[$i]['department'][0]))
echo ' ----> '.$info_user[$i]['department'][0];
echo ' </br>' ;
}
//for ($i=0, $c=count($sql1); $i<$c; $i++)
//echo $sql1[2];
for ($i=0, $c=$info_comp['count']; $i<$c; $i++)
{
echo $i. ' ----> ' .$info_comp[$i]['cn'][0] . ' ----> ';
if (isset($info_comp[$i]['description'][0]))
echo ' ----> '.$info_comp[$i]['description'][0];
}
?>