当前位置: 技术问答>linux和unix
无线网卡发包
来源: 互联网 发布时间:2016-02-07
本文导语: 我用如下的程序发数据包,机器自动选择从有线网卡发出去。如果把有线网卡关掉,它就从无线网卡发了。怎样才能在不关掉有线网卡的情况下用无线网卡发包呢? 问题也可以描述为:一台计算机在多网卡的情况下...
我用如下的程序发数据包,机器自动选择从有线网卡发出去。如果把有线网卡关掉,它就从无线网卡发了。怎样才能在不关掉有线网卡的情况下用无线网卡发包呢?
问题也可以描述为:一台计算机在多网卡的情况下,怎样从指定的网卡发包?
int main(int argc,char **argv)
{
struct addrinfo ai;
struct addrinfo *res;
char sendbuf[BUFSIZE];
int len=96;
int sockfd;
bzero(&ai,sizeof(ai));
ai.ai_flags=AI_CANONNAME;
ai.ai_family=AF_INET6;
ai.ai_socktype=0;
getaddrinfo("ff02::1", NULL, &ai, &res);//写入ipv6多播地址
sockfd=socket(AF_INET6,SOCK_RAW,IPPROTO_RAW);//ipv6原始套接口,实际需要只能用原始套接口
if(sendto(sockfd,sendbuf,len,0,res->ai_addr,res->ai_addrlen)
问题也可以描述为:一台计算机在多网卡的情况下,怎样从指定的网卡发包?
int main(int argc,char **argv)
{
struct addrinfo ai;
struct addrinfo *res;
char sendbuf[BUFSIZE];
int len=96;
int sockfd;
bzero(&ai,sizeof(ai));
ai.ai_flags=AI_CANONNAME;
ai.ai_family=AF_INET6;
ai.ai_socktype=0;
getaddrinfo("ff02::1", NULL, &ai, &res);//写入ipv6多播地址
sockfd=socket(AF_INET6,SOCK_RAW,IPPROTO_RAW);//ipv6原始套接口,实际需要只能用原始套接口
if(sendto(sockfd,sendbuf,len,0,res->ai_addr,res->ai_addrlen)