gpt4 book ai didi

c - 从套接字 fd 获取 ip 地址(不重复)

转载 作者:太空宇宙 更新时间:2023-11-04 04:41:12 24 4
gpt4 key购买 nike

<分区>

我将我的进程(具有 root 权限)附加到浏览器进程以使用 ptrace 拦截其系统调用。为了解码 connect() 系统调用的参数,我得到了 sockfd。但是我几天来一直在尝试获取该套接字另一端的 ip 地址 但没有成功。

我在环顾四周时遇到了这两个问题

1) Get IP address from socket descriptor?

2) Getting IP address, port and connection type from a socket fd

我遵循了第一个问题的建议,但不知何故它给出了错误。 错误:“struct sockaddr_in”没有名为“sa_data”的成员。我深入研究了互联网并得到了另一个提示,我用它来编写这段代码

temp = getpeername(regs.rdi, (struct sockaddr *)&ip_addr_struct, &ip_addr_structlen);
struct sockaddr_in *s = (struct sockaddr_in *)&ip_addr_struct;
int port = ntohs(s->sin_port);
inet_ntop(AF_INET, &s->sin_addr, ip_addr, 1024);
printf("%d-%s\n", port, ip_addr);

这里的regs.rdi就是sockfd。但即使使用这段代码,每次我都会得到 0-0.0.0.0
作为输出。请帮助任何人。有没有其他方法可以获取 ip 地址,或者我做错了什么?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com