如何在RTP中获取IP地址

问题描述 投票:0回答:1

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

vxworks
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.