yp_cat
(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5)
yp_cat — Return an array containing the entire map
Description
array yp_cat
( string
$domain
, string $map
)Returns all map entries.
Parameters
-
domain
-
The NIS domain name.
-
map
-
The NIS map.
Return Values
Returns an array of all map entries, the maps key values as array indices and the maps entries as array data.
Коментарии
I hope this will userfull to somebody:
function auth_by_nis($login,$password,$nis_domain='-d xxx_nis',$nis_host='-h xxx.it')
{
$output = shell_exec("ypcat $nis_domain $nis_host passwd");
$lines=split("\n",$output);
foreach ($lines as $k=>$v)
{
list($login_nis,$pw_nis)=split(":",$v);
if ($login_nis != $login)continue;
//login trovata: ora si verifica la password
$salt=substr( $pw_nis , 0 ,2);
$pass_cript=crypt($password, $salt);
if($pass_cript == $pw_nis) return 1;
else return 0;
}
return 0;
}
yp_cat is lacking in PHP5 - this is a suitable (slow, forking) replacement...
<?php
$handle = popen( 'ypcat passwd.byname', 'r' );
while (($line = fgets($handle, 1024)) !== FALSE) {
list($user,$pass,$uid,$gid,$gcos,$home,$shell) = explode (':', $line);
list($name,$room,$work,$home,$position) = explode (',', $gcos);
## Do Stuff ##
}
pclose( $handle );
?>