如何在 AP 模式下获取机器(在 Linux)的 IP 地址?

How to get IP adress of machine(on Linux) in AP mode?

我正在 Wi-Fi AP 模式下配置我的开发板。我可以使用 ifconfig

查看 wlan AP 接口
 ifconfig wlan1
wlan1     Link encap:Ethernet  HWaddr 74:DA:EA:C2:63:17  
          inet addr:192.168.43.1  Bcast:192.168.43.255  Mask:255.255.255.0
          inet6 addr: fe80::76da:eaff:fec2:6317%767480/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:62 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:12808 (12.5 KiB)

我的板上有 Linux 4.4 运行。有没有 API 我可以通过它获取开发板的 IP 地址,即 192.168.43.1

我想编写一个将使用此 IP 地址的 c 应用程序。谢谢

ioctl 与 SIOCGIFADDR 一起使用会有所帮助。

在linux的情况下,有多种方法可以使用C程序获取接口的IP地址。

  1. ioctl - 这在 linux 中受支持,用于配置或获取有关网络设备的信息。您可以使用在接口上运行的 ioctl 命令,例如 SIOCGIFADDR 用于获取接口的 IP 地址和 SIOCGIFNETMASK 用于获取接口网络掩码。

  2. getifaddrs - 这可用于获取接口的 IP 地址。参考linkhttp://man7.org/linux/man-pages/man3/getifaddrs.3.html里面有一个很好的例子