JLDAP/LDAPNetAddr
From Joomla! Documentation
< API16:JLDAP
The "API16" namespace is an archived namespace. This page contains information for a Joomla! version which is no longer supported. It exists only as a historical reference, it will not be improved and its content may be incomplete and/or contain broken links.
Description[edit]
extract readable network address from the LDAP encoded networkAddress attribute. Jay Burrell, Systems & Networks, Mississippi State University Please keep this document block and author attribution in place. 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. Enhancement made by Merijn van de Schoot: If addresstype is 8 (UDP) or 9 (TCP) do some additional parsing like still returning the IP address
<! removed transcluded page call, red link never existed >
Syntax[edit]
LDAPNetAddr($networkaddress)
Parameter Name | Default Value | Description |
---|---|---|
$networkaddress |
Defined in[edit]
libraries/joomla/client/ldap.php
Importing[edit]
jimport( 'joomla.client.ldap' );
Source Body[edit]
function LDAPNetAddr($networkaddress)
{
$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
if (($addrtype == 8) || ($addrtype = 9)) {
// TODO 1.6: If UDP or TCP, (TODO fill addrport and) strip portnumber information from address
$networkaddress = substr($networkaddress, (strlen($networkaddress)-4));
}
$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) || ($addrtype == 8) || ($addrtype = 9)) { // dot separate IP addresses...
$addr .= ".";
}
}
if (($addrtype == 1) || ($addrtype == 8) || ($addrtype = 9)) { // strip last period from end of $addr
$addr = substr($addr, 0, strlen($addr) - 1);
}
} else {
$addr .= "address not available.";
}
return Array('protocol'=>$addrtypes[$addrtype], 'address'=>$addr);
}
<! removed transcluded page call, red link never existed >
Examples[edit]
Code Examples[edit]