log_err("Host name could not be found for " . SioActdr); return -1;
} else {
ShostName[$ipAddr] = $ret; $ipAddress[$ret] = SipAddr; return $ret;
}
}
Этот метод возвращает номер протокола, соответствующий имени, указанному в аргументе:
function getProtoByName(Sname)
{
if (!$name) {
log_err( "Protocol name is required to get
the protocol number" ); return -1;
} elseif ((Sret = $protoNumber[$name])) { return Sret;
^elseif (($ret = getprotobyname($name)) == false) {
log_err( "Protocol number could not be found for " . $name); return -1;
} else {
$protoNumber[$name] = $ret; $protoName[$ret] = $name; return Sret;
|
Этот метод возвращает имя протокола, соответствующее номеру протокола:
function getProtoByNumber($number) {
if (!$number) {
log_err( "Protocol number is required to get
the protocol name" ); return -1;
} elseif (($ret = SprotoName[$number])) {
return $ret;
} elsif (($ret =getprotobynumber(Snumber)) == false) {
log_err("Protocol name could not be found for " . Snumber); return -1; } else {
SprotoName[$number] = $ret; $protoNumber[$ret] = Snumber; return $ret;
)
}
Этот метод возвращает номер порта службы, реализованной через TCP или UDP и указанной по имени:
function getServByName($name, Sproto) {
if (Strtoupper($proto)== "TCP" i | strtoupper($proto) .!= "UDP")) { log_err("Protocol must either be TCP or UDP"); return -1;
)
if <! Sname) {
log_err("Service name is required to get the port number" ); return -1;
} elseif <($ret = $servPort[$name])) { return $ret;
} elseif (($ret = getservbyname($name)) == false) { log_err("Service port could not be found for
" . $name . " arid protocol" . $proto);
return } else {
$servPort[$name] - $ret; $servName[$ret] = Sname;
return $ret;
}
}
Фактический IP-адрес представляет собой 32-разрядное число и в некоторых архитектурах считается имеющим тип long. Этот метод принимает строку IP-адреса с разделителем-точкой и преобразует ее в 32-разрядное число:
function dottedToIp(Sdotted) 1
t
if (!$dotted) {
log_err("Dot formatted IP address is required to get
long IP address"); return -1;
•} elseif (!ereg("[1-254]\.[1-254]\.[1-254]\.[1-254]",Sdotted)) { log_err("Incorrect IP address format"); return -1;
} elseif ($ret = $ipLong[$dotted]) {
return $ret;
} elseif ((Sret = ip21ong($dotted)) == false) {
log_err("Long IP address could not be found for " . Sdotted); return -1;