Sample Code - LDAPNetAddr
Novell Cool Solutions: Feature
Digg This -
Slashdot This
Posted: 4 Jan 2006 |
The LDAPNetAddr sample code by Jay Burrell enables you to extract a readable network address from the LDAP-encoded
networkAddress attribute. Simply pass the networkAddress attribute from an LDAP Query, and this function
will return a string of "AddrType:" such as "IP: 192.168.1.12"
You can also find this sample code at:
http://forge.novell.com/modules/xfref_library/detail.php?reference_id=211
Sample Code
function LDAPNetAddr ($networkaddress) { /* Jay Burrell, Systems & Networks, Mississippi State University NetAddr - extract readable network address from the LDAP encoded networkAddress attribute. Novell Docs, see: http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5624.html#sdk5624 for Address types: http://developer.novell.com/ndk/doc/ndslib/index.html?page=/ndk/doc/ndslib/schm_enu/data/sdk4170.html LDAP Format, String: taggedData = uint32String "#" octetstring byte 0 = uint32String = Address Type: 0= IPX Address; 1 = IP Address byte 1 = char = "#" - separator byte 2+ = octetstring - the ordinal value of the address Note: with eDirectory 8.6.2, the IP address (type 1) returns correctly, however, an IPX address does not seem to. eDir 8.7 may correct this. */ $addr = ""; $addrtype = intval(substr($networkaddress, 0, 1)); $networkaddress = substr($networkaddress, 2); // throw away bytes 0 and 1 which should be the addrtype and the "#" separator $addrtypes = array('IPX', 'IP', 'SDLC', 'Token Ring', 'OSI', 'AppleTalk', 'NetBEUI', 'Socket', 'UDP', 'TCP', 'UDP6', 'TCP6', 'Reserved (12)', 'URL', 'Count'); $len = strlen($networkaddress); if ($len > 0) { for ($i=0; $i<$len; $i+=1) { $byte = substr($networkaddress, $i, 1); $addr .= ord($byte); if ($addrtype == 1){ // dot separate IP addresses... $addr .= "."; } } if ($addrtype == 1) { // strip last period from end of $addr $addr = substr($addr, 0, strlen($addr)-1); } } else { $addr .= "address not available."; } return ($addrtypes[$addrtype] . ": " . $addr); }

Novell Cool Solutions (corporate web communities) are produced by WebWise Solutions. www.webwiseone.com