NIS 的全名为 Network Information System,另外一个说法就是 YP (Yellow Pages)。NIS 或 YP 可以让许多不同的 UNIX 机器拥有相同的系统信息,例如相同的用户帐号密码,使系统管理人员及用户都容易在不同的机器间穿梭,不可避免的,会有安全上的缺点,不过安全就不是这儿所讨论的了。而关于 NIS 方面的中英文书籍在市面上都可以找到,或者也可以参考 http://www.desy.de/~sieversm/ypdoku/ypdoku/ypdoku.html 。 欲使用 NIS 函数库,记得要在编译 PHP 时将 YP 的选项打开,即加上 --with-yp 选项。 |
yp_get_default_domain: 取得机器的 Domain。 yp_order: 返回 map 的序数。 yp_master: 取得 NIS 的 Master。 yp_match: 取得指定资料。 yp_first: 返回 map 上第一笔符合的资料。 yp_next: 指定 map 的下笔资料。 yp_errno: 取得先前 YP 操作的错误码。 yp_err_string: 取得先前 YP 操作的错误字符串。
yp_get_default_domain 取得机器的 Domain。 语法: string yp_get_default_domain(void); 返回值: 字符串 函数种类: 网络系统 内容说明: 本函数用来寻找服务器本身所处的 Domain。执行成功则返回 Domain 字符串,失败则返回 false。本函数执行时不需要加参数。 使用范例 <?php $domain = yp_get_default_domain(); if(!$domain) { echo yp_errno() . ": " . yp_err_string(); } echo "NIS 的 domain 为: " . $domain; ?> 参考: yp_errno() yp_err_string() yp_order 返回 map 的序数。 语法: int yp_order(string domain, string map); 返回值: 整数 函数种类: 网络系统 内容说明: 本函数用来取得 map 的序数,在取得 Domain 及 map 之后使用。返回值为 map 序数,若失败则返回 false。 使用范例 <?php $number = yp_order($domain, $mapname); if(!$number) { echo yp_errno() . ": " . yp_err_string(); } echo "Map 序数为: " . $order; ?> 参考: yp_get_default_domain() yp_errno() yp_err_string() yp_master 取得 NIS 的 Master。 语法: string yp_master(string domain, string map); 返回值: 字符串 函数种类: 网络系统 内容说明: 本函数用来获取目前所在 Domain 上的 Master 机器,在取得 Domain 及 map 之后使用。 参考: yp_get_default_domain() yp_errno() yp_err_string() yp_match 取得指定资料。 语法: string yp_match(string domain, string map, string key); 返回值: 字符串 函数种类: 网络系统 内容说明: 本函数用来获取指定 Domain 中 Map 中的指定资料。参数 key 可指定用户名称等。 使用范例 下例用来取得 wilson 的信息 <?php $entry = yp_match($domain, "passwd.byname", "wilson"); if(!$entry) { echo yp_errno() . ": " . yp_err_string(); } echo "取得字符串为: " . $entry; ?> 返回字符串类似下面的字符串 wilson:##wilson:12345:380:Wilson Peng:/home/wilson:/bin/bash 参考: yp_get_default_domain() yp_errno() yp_err_string() yp_first 返回 map 上第一笔符合的资料。 语法: array yp_first(string domain, string map); 返回值: 数组 函数种类: 网络系统 内容说明: 本函数用来取得指定 map 上第一笔返回资料的索引和其值。返回资料为数组,若失败则返回 false。 使用范例 <?php $entry = yp_first($domain, "passwd.byname"); if(!$entry) { echo yp_errno() . ": " . yp_err_string(); } $key = key($entry); echo "第一笔索引为: ".$key."n"; echo "其值为: ".$entry[$key]; ?> 参考: yp_get_default_domain() yp_errno() yp_err_string() yp_next 指定 map 的下笔资料。 语法: array yp_next(string domain, string map, string key); 返回值: 数组 函数种类: 网络系统 内容说明: 本函数用来取得 map 上指定资料的下笔返回资料的索引和其值。返回资料为数组,若失败则返回 false。 使用范例 <?php $entry = yp_next($domain, "passwd.byname", "wilson"); if(!$entry) { echo yp_errno() . ": " . yp_err_string(); } $key = key($entry); echo "Wilson 后的索引为: ".$key."n"; echo "其值为: " . $entry[$key]; ?> 参考: yp_get_default_domain() yp_errno() yp_err_string() yp_errno 取得先前 YP 操作的错误码。 语法: int yp_errno(void); 返回值: 整数 函数种类: 网络系统 内容说明: 本函数用来取得最后一次 YP 操作时的错误代码,代码值及意义见下粗体部分
代码 意义 1 函数的参数有错 2 RPC 错误 - 不再系着 Domain 3 在 Domain 上无法系住服务器 4 Domain 上找不到指定的 map 5 Map 上找不到指定的索引键 6 YP 内部有错 7 资源取得错误 8 指定 Map 数据库中已无资料 9 无法与 portmapper 通讯 10 无法与 ypbind 通讯 11 无法与 ypserv 通讯 12 未配置本地的 Domain 13 YP 数据库有错 14 YP 版本不合 15 暴力存取 16 资料忙线中 yp_err_string 取得先前 YP 操作的错误字符串。 语法: string yp_err_string(void); 返回值: 字符串 函数种类: 网络系统 内容说明: 本函数用来取得最后一次 YP 操作时的错误字符串。本函数不需参数。
|