Как получить IP-адрес моего собственного сервера с помощью IO :: Socket :: SSL

Вы должны определить статику в файле cpp.

Log.cpp

#include "Log.h"
#include <ostream>

string Log::theString;  // <---- define static here

void Log::method(string arg){
    theString = "hola";
    cout   << theString << endl; 
}

Вы также должны удалить using namespace std; из заголовка. Входите в привычку, пока можете. Это будет загрязнять глобальное пространство имен с помощью std, где бы вы не включили заголовок.

1
задан Corion 18 January 2019 в 08:03
поделиться

1 ответ

Используйте метод sockaddr() для IO :: Socket:

use strict;
use warnings;

use IO::Socket::INET;

my $socket = IO::Socket::INET->new(
    PeerAddr => 'localhost:3306'
) or die "$!\n";

print inet_ntoa($socket->sockaddr()), "\n";

Пример вывода:

$ perl dummy.pl
127.0.0.1

РЕДАКТИРОВАТЬ: обратите внимание, что вы должны используйте sockaddr на принятом сокете для клиента, а не на сокете прослушивания. В прослушивающем сокете вы увидите только те адреса, к которым он привязан, это может быть IN_ADDR_ANY (AKA 0.0.0.0).

0
ответ дан Stefan Becker 18 January 2019 в 08:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: