当前位置: 技术问答>linux和unix
linux 多网卡编程,如何确定每个网卡的地址?
来源: 互联网 发布时间:2015-04-14
本文导语: 我现在有个这样的问题。 有一组服务器,每台服务器有两个网卡,其中一个网卡连接在局域网,另一个连接在internet网,请问在我的程序中如何得到连到internet网的那个网卡的IP?? 谢谢 | #inc...
我现在有个这样的问题。
有一组服务器,每台服务器有两个网卡,其中一个网卡连接在局域网,另一个连接在internet网,请问在我的程序中如何得到连到internet网的那个网卡的IP??
谢谢
有一组服务器,每台服务器有两个网卡,其中一个网卡连接在局域网,另一个连接在internet网,请问在我的程序中如何得到连到internet网的那个网卡的IP??
谢谢
|
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ETH_NAME "eth0" //你的可以上internet的网卡设备名
int main()
{
int sock;
struct sockaddr_in sin;
struct sockaddr sa;
struct ifreq ifr;
unsigned char mac[6];
sock = socket(AF_INET, SOCK_DGRAM, 0);
if (sock == -1)
{
perror("socket");
return -1;
}
strncpy(ifr.ifr_name, ETH_NAME, IFNAMSIZ);
ifr.ifr_name[IFNAMSIZ - 1] = 0;
if (ioctl(sock, SIOCGIFADDR, &ifr)
#include
#include
#include
#include
#include
#include
#include
#include
#define ETH_NAME "eth0" //你的可以上internet的网卡设备名
int main()
{
int sock;
struct sockaddr_in sin;
struct sockaddr sa;
struct ifreq ifr;
unsigned char mac[6];
sock = socket(AF_INET, SOCK_DGRAM, 0);
if (sock == -1)
{
perror("socket");
return -1;
}
strncpy(ifr.ifr_name, ETH_NAME, IFNAMSIZ);
ifr.ifr_name[IFNAMSIZ - 1] = 0;
if (ioctl(sock, SIOCGIFADDR, &ifr)