Я использую libssh для создания собственного ssh-сервера (своего рода приманки). Я хотел бы сохранить IP-адрес подключенного клиента в свой файл журнала. Как получить этот IP-адрес? Программирование на С++. Заранее спасибо, ребята!
Как получить IP-адрес клиента с помощью libssh
Ответы (1)
Вот небольшая функция, которую я использую.
string getClientIp(ssh_session session) {
struct sockaddr_storage tmp;
struct sockaddr_in *sock;
unsigned int len = 100;
char ip[100] = "\0";
getpeername(ssh_get_fd(session), (struct sockaddr*)&tmp, &len);
sock = (struct sockaddr_in *)&tmp;
inet_ntop(AF_INET, &sock->sin_addr, ip, len);
string ip_str = ip;
return ip_str;
}
Он основан на функции "get_client_ip" из https://github.com/PeteMo/sshpot/blob/master/auth.c, где находится полная реализация приманки SSH.
person
vojtamicka
schedule
14.11.2015