首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用libssh获取客户端ip地址

如何使用libssh获取客户端ip地址
EN

Stack Overflow用户
提问于 2015-10-15 01:06:40
回答 2查看 581关注 0票数 0

我正在使用libssh制作自己的ssh服务器(某种蜜罐)。我想要将连接的客户端的ip地址保存到我的日志文件中。如何获取此IP地址?用c++编程。提前感谢,伙计们!

EN

回答 2

Stack Overflow用户

发布于 2015-11-14 23:31:01

下面是我正在使用的小函数。

代码语言:javascript
复制
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蜜罐实现。

票数 1
EN

Stack Overflow用户

发布于 2015-10-15 19:07:42

代码语言:javascript
复制
s = ssh_get_fd(session);
getpeername(s, ...);
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33131501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档