Linux/C:从设备名称获取IP地址?
可能的重复:
获取linux上接口的IP地址
我怎样才能获取设备名称中的 IP 地址(例如:eth0)?
Possible Duplicate:
Get IP address of an interface on linux
How can I get the ip address from the device name (Example: eth0)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
免责声明:您的应用程序不应依赖于此类信息。应用程序必须仅查看和使用 IP 地址。以太网设备是操作系统管道。请记住,您的 IP 地址可能不与任何设备关联,或者设备具有多个 IP 地址、多个协议(IPv4、IPv6)等。如果应用程序确实希望使用与以太网关联的 IP 地址,请重新检查应用程序的设计设备名称。
如果您仍然想关联 IP 地址和以太网设备名称,请检查 getifaddrs(3),它是 netlink(7) 内核套接字的简单前端。
DISCLAIMER: Your application SHOULD NOT depend on this kind of information. The application must see and use IP addresses ONLY. Ethernet devices are operating system plumbing. Keep in mind that you may have IP addresses not associated with any device, or devices with multiple IP addresses, multiple protocols (IPv4, IPv6), etc. Recheck the design of your application if it is really expecting to use IP addresses associated to Ethernet device names.
If you still want to associate IP addresses and Ethernet device names, check getifaddrs(3), which is a simple frontend to netlink(7) kernel sockets.
或
或过时
这是一个问题或serverfault.com
or
or the obsolete
And this is a question or serverfault.com
查看 这里。如果您需要在 C 程序中使用结果,可以使用
system(yourCommand)
,然后使用fopen()
stdout 来读取结果。Look here. If you need to use your result in a C program, you can use
system(yourCommand)
and thenfopen()
stdout to read the result.