Мне нужно выдать локальный клиент в Perl для целей мониторинга внутреннего соединения, например, (не перехватывая, отдельный клиент для существующего сервера):
my $srv_ip=????; # I know my server IP address, but this is general and may change, I want this to be taken programmatically somehow.
my $cl=IO::Socket::SSL->new($srv_ip:$Port);
1) Я нахожусь внутри открытого сервера веб-сокетов, используя Net :: Websocket :: Server, но, читая их спецификации, я не нашел, как получить IP-адрес моего сервера, и я думаю, что будет гораздо более простой способ (возможно, из % ENV, но я не уверен, что этот подход будет приемлем в каждой ОС - он должен быть переносимым, по крайней мере, для систем Linux).
2) Слушатель соединения с сервером, который я также открыл с помощью IO :: Socket :: SSL:
my @crt=&SSLCerts(); die 'E101' if(@crt==0);
my $ssl=IO::Socket::SSL->new(
Listen => 10000,
Timeout => 45,
LocalPort => $Port,
Proto => 'tcp',
SSL_cert_file => "$EF::Base/$crt[0][0].crt",
SSL_key_file => "$EF::Base/$crt[1][0].key"
) or die "E102: $!";
но в их спецификации я также не нашел собственную переменную IP-адреса сервера, которую я мог бы использовать.
3) Обратите внимание, что одна и та же программа pl предназначена для многих систем, каждой и ее порта. Хотя они совместно используют один и тот же хост, адрес вводится при входе с клиента и НЕ сохраняется в какой-либо переменной (это может помочь, но я думаю, что должен быть простой способ получить его, возможно, из% ENV).
Что я должен положить в $ srv_ip, чтобы он заработал?
Большое спасибо