©
This document uses PHP Chinese website manual Release
(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5)
yp_cat — Return an array containing the entire map
$domain
, string $map
)Returns all map entries.
domain
The NIS domain name.
map
The NIS map.
Returns an array of all map entries, the maps key values as array indices and the maps entries as array data.
[#1] Nicholas Humfrey [2007-01-22 14:15:31]
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 );
?>
[#2] [2006-02-20 03:26:35]
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;
}