Linux系统 C++ 获取网络接口,以及主机网关IP,完整的C++源码如下:
#include //for in_addr
#include //for rtnetlink
海姹网(网址:http://www.seacha.com),标签:Linux系统 C++ 获取网络接口,以及主机网关IP, 网络,网关,IP
#include //for IF_NAMESIZ, route_info
#include
#include //for malloc(), free()
#include //for strstr(), memset()
#include
using namespace std;
#define BUFSIZE 8192
struct route_info
{
u_int dstAddr;
u_int srcAddr;
u_int gateWay;
char ifName[IF_NAMESIZE];
海姹网(网址:http://www.seacha.com),标签:Linux系统 C++ 获取网络接口,以及主机网关IP, 网络,网关,IP
};
int readNlSock(int sockFd, char *bufPtr, int seqNum, int pId)
{
struct nlmsghdr *nlHdr;
int readLen = 0, msgLen = 0;
do{
//收到内核的应答
if((readLen = recv(sockFd, bufPtr, BUFSIZE - msgLen, 0)) < 0)
{
perror("SOCK READ: ");
海姹网(网址:http://www.seacha.com),标签:Linux系统 C++ 获取网络接口,以及主机网关IP, 网络,网关,IP
return -1;
}
nlHdr = (struct nlmsghdr *)bufPtr;
//检查header是否有效</