如何在RTP中获取IP地址

时间:2019-03-22 08:57:00

标签: vxworks

如何从VxWorks7上的系统中以RTP(实时过程)获取IP地址? 因为ifAddrGet()不适用于RTP。

1 个答案:

答案 0 :(得分:0)

使用ioctl获取IP地址和其他信息:

#include <ioLib.h>
#include <sys/ioctl.h>
#include <socklib.h>
#include <net/if.h>
#include <netinet/in.h>
#include <ipcom_sock.h>



struct sockaddr_in * addrp;
struct ifreq ifr;
int sock;
char ipStr[IP_INET_ADDRSTRLEN]

memset((void *)&ifr, 0, sizeof(struct ifreq));

strcpy(ifr.ifr_name, "gei0");

sock = socket(AF_INET, SOCK_DGRAM, 0);
if(sock == ERROR)
    return ERROR;

if(ioctl(sock, SIOCGIFADDR, &ifr) != ERROR)
{
    addrp = (struct sockaddr_in *)&ifr.ifr_addr; 
    ipcom_inet_ntop(AF_INET, &addrp->sin_addr.s_addr, ipStr,  
        IP_INET_ADDRSTRLEN);
}
else
    return ERROR;

printf("IP: %s", ipStr);

close(sock);

return OK