В некоторых версиях UNIX порты со старшими номерами в диапазоне 49152 ... 65535 зарезервированы операционной системой для использования в качестве “временных” портов, которые назначаются автоматически исходящим соединениям TCP/IP, если номер порта не был явно затребован. Остальные порты, которые находятся в диапазоне 1024 ... 49151, могут безо всяких ограничений применяться в приложениях; при условии, что на них нет заявки от какой-то другой службы. Всегда рекомендуется проверять порты, использованные в компьютере, с применением одного из сетевых инструментальных средств. Структура sockaddr_in. Адрес сокета— это информация об адресе хоста и номере порта, упакованная в двоичную структуру, называемую sockaddr_in. Эта структура соответствует структуре с тем же именем, которое применяется самой операционной системой для вызова системных сетевых процедур. Аналогичным образом в сокетах домена UNIX используется упакованная структура с именем sockaddr_un.) Функции, предусмотренные в стандартном модуле Socket языка Perl, позволяют легко создавать структуры sockaddr_in и управлять ими.
$packed_address = inet_aton ($dotted_quad);
После получения IP-адреса, представленного в форме четырех чисел, разделенных точками, эта функция упаковывает его в двоичную форму, пригодную для использования в функции sockaddr_in(). Данная функция позволяет также применять символические имена хостов. Если имя хоста не было найдено, функция возвращает значение undef.
$dotted_quad = inet_ntoa($packed_address);
Эта функция принимает упакованный IP-адрес и преобразует его в форму, предназначенную для восприятия человеком, в виде четырех чисел, разделенных точками. Функция не предпринимает попыток преобразовать IP-адреса в имена хостов. Такую операцию можно выполнить с использованием функции gethostbyaddr().