我正在使用libssh制作自己的ssh服务器(某种蜜罐)。我想要将连接的客户端的ip地址保存到我的日志文件中。如何获取此IP地址?用c++编程。提前感谢,伙计们!
发布于 2015-11-14 23:31:01
下面是我正在使用的小函数。
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;
}它基于https://github.com/PeteMo/sshpot/blob/master/auth.c中的函数"get_client_ip“,其中是完整的SSH蜜罐实现。
发布于 2015-10-15 19:07:42
s = ssh_get_fd(session);
getpeername(s, ...);https://stackoverflow.com/questions/33131501
复制相似问题