此问题与之前询问的获取本地计算机的IP地址 -Question 几乎相同.但是,我需要找到Linux机器的IP地址.
那么:我如何 - 在C++中以编程方式 - 检测运行我的应用程序的linux服务器的IP地址.服务器至少有两个IP地址,我需要一个特定的IP地址(给定网络中的一个(公共网络)).
我确信有一个简单的功能可以做到这一点 - 但在哪里?
为了让事情更清楚:
我需要找到外部IP地址来绑定我的应用程序.显然我也可以绑定到INADDR_ANY(实际上这就是我现在所做的).不过,我更愿意检测公共地址.
我正在研究Ubuntu.如何使用C程序获取我的机器的MAC地址或接口说eth0.
Linux中是否有一种方法可以使用C代码获取"ifconfig eth0"返回的相同信息?我对IP地址,链接状态和MAC地址等感兴趣.
这是ifconfig的示例输出:
eth0 Link encap:Ethernet HWaddr 00:0F:20:CF:8B:42
inet addr:217.149.127.10 Bcast:217.149.127.63 Mask:255.255.255.192
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2472694671 errors:1 dropped:0 overruns:0 frame:0
TX packets:44641779 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1761467179 (1679.8 Mb) TX bytes:2870928587 (2737.9 Mb)
Interrupt:28
Run Code Online (Sandbox Code Playgroud)