首页 > 解决方案 > ioctl(...,, SIOCGIFDSTADDR, ...) 的问题

问题描述

你好世界!

我正在尝试开发一个将在 Arduino IDE 上运行的 Raspberry 库。我的问题是:

  1. (EthernetClient 库)我想获取套接字另一端的 IP(考虑到 A(客户端)连接到 B(服务器或其他)。
  2. 为此,我将使用带有 SIOCGIFDSTADDR 参数的«ioctl»。
  3. 我在 Raspberry 上执行运行客户端和服务器的测试。(IP = 127.0.0.1 和端口 = 8080,本地连接)。
  4. 我的代码无论如何都会返回(其他 IP 或网关)(例如 208.180.243.182 或例如 208.100.245.182;100% 真实不是假的)

任何想法?

我的相关代码:

  (...)
  struct ifreq conB;
  ioctl(sockfd, SIOCGIFDSTADDR, &conB, sizeof(conB));
  printf("IP of the remote connection = %s\n",
  inet_ntoa(((struct sockaddr_in*)&conB.ifr_dstaddr) -> sin_addr));
  (...)

感谢阅读!:)

标签: c++clinuxsocketsraspberry-pi

解决方案


推荐阅读