如何在 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地址。
ioctl
- 这在 linux 中受支持,用于配置或获取有关网络设备的信息。您可以使用在接口上运行的 ioctl 命令,例如 SIOCGIFADDR
用于获取接口的 IP 地址和 SIOCGIFNETMASK
用于获取接口网络掩码。
getifaddrs
- 这可用于获取接口的 IP 地址。参考linkhttp://man7.org/linux/man-pages/man3/getifaddrs.3.html里面有一个很好的例子
我正在 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地址。
ioctl
- 这在 linux 中受支持,用于配置或获取有关网络设备的信息。您可以使用在接口上运行的 ioctl 命令,例如SIOCGIFADDR
用于获取接口的 IP 地址和SIOCGIFNETMASK
用于获取接口网络掩码。getifaddrs
- 这可用于获取接口的 IP 地址。参考linkhttp://man7.org/linux/man-pages/man3/getifaddrs.3.html里面有一个很好的例子