Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : YP/NIS Functions : yp_cat

yp_cat

Return an array containing the entire map (PHP 4 >= 4.0.6, PHP 5 <= 5.0.5)
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.

Code Examples / Notes » yp_cat

nicholas humfrey

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 );
?>


smchang

result browsing code
<?php
$arraylist = yp_cat($domain,"passwd.byname");
$key = array_keys($arraylist);
$count = count($key);
for ( $i = 0; $i < $count ; $i++ ) {
       echo "COUNT $i  ->  ";
       echo $arraylist[$key[$i]];
       echo "
\n";
}
?>
RESULT( Only First line )
COUNT 0 -> testuser:3jYXqr8fRm28M:500:500:PHP Test user:/home/testuser:/bin/csh
It, is in $key, is username(in example, testuser).


20-feb-2006 11:26

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;
}


Change Language


Follow Navioo On Twitter
yp_all
yp_cat
yp_err_string
yp_errno
yp_first
yp_get_default_domain
yp_master
yp_match
yp_next
yp_order
eXTReMe Tracker