当前位置: 技术问答>linux和unix
1.请问如何编程获取网关ip地址 2.如何在一块网卡中绑定多个ip地址?
来源: 互联网 发布时间:2015-10-13
本文导语: 1.请问如何编程获取网关ip地址 2.如何在一块网卡中绑定多个ip地址? 我知道怎样编程设置网卡的ip地址,但如何添加多个ip地址给一个网卡? 请大家帮忙,多谢! | 我这有设...
1.请问如何编程获取网关ip地址
2.如何在一块网卡中绑定多个ip地址?
我知道怎样编程设置网卡的ip地址,但如何添加多个ip地址给一个网卡?
请大家帮忙,多谢!
2.如何在一块网卡中绑定多个ip地址?
我知道怎样编程设置网卡的ip地址,但如何添加多个ip地址给一个网卡?
请大家帮忙,多谢!
|
我这有设置网关的代码,不知有用否?
bool SetDefaultRoute(char *szGateWay)
{
int sockfd;
struct rtentry rm;
struct sockaddr_in ic_gateway ; // Gateway IP address
int err;
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
if (sockfd == -1)
{
return FALSE;
}
memset(&rm, 0, sizeof(rm));
ic_gateway.sin_family = AF_INET;
ic_gateway.sin_addr.s_addr = inet_addr(szGateWay);
ic_gateway.sin_port = 0;
/* if ((ic_gateway ^ sin.sin_addr) & mask.sin_addr) {
printf("IP-Config: Gateway not on directly connected network.n");
return FALSE;
} */
(( struct sockaddr_in*)&rm.rt_dst)->sin_family = AF_INET;
(( struct sockaddr_in*)&rm.rt_dst)->sin_addr.s_addr = 0;
(( struct sockaddr_in*)&rm.rt_dst)->sin_port = 0;
(( struct sockaddr_in*)&rm.rt_genmask)->sin_family = AF_INET;
(( struct sockaddr_in*)&rm.rt_genmask)->sin_addr.s_addr = 0;
(( struct sockaddr_in*)&rm.rt_genmask)->sin_port = 0;
memcpy((void *) &rm.rt_gateway, &ic_gateway, sizeof(ic_gateway));
rm.rt_flags = RTF_UP | RTF_GATEWAY;
if ((err = ioctl(sockfd, SIOCADDRT, &rm))
bool SetDefaultRoute(char *szGateWay)
{
int sockfd;
struct rtentry rm;
struct sockaddr_in ic_gateway ; // Gateway IP address
int err;
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
if (sockfd == -1)
{
return FALSE;
}
memset(&rm, 0, sizeof(rm));
ic_gateway.sin_family = AF_INET;
ic_gateway.sin_addr.s_addr = inet_addr(szGateWay);
ic_gateway.sin_port = 0;
/* if ((ic_gateway ^ sin.sin_addr) & mask.sin_addr) {
printf("IP-Config: Gateway not on directly connected network.n");
return FALSE;
} */
(( struct sockaddr_in*)&rm.rt_dst)->sin_family = AF_INET;
(( struct sockaddr_in*)&rm.rt_dst)->sin_addr.s_addr = 0;
(( struct sockaddr_in*)&rm.rt_dst)->sin_port = 0;
(( struct sockaddr_in*)&rm.rt_genmask)->sin_family = AF_INET;
(( struct sockaddr_in*)&rm.rt_genmask)->sin_addr.s_addr = 0;
(( struct sockaddr_in*)&rm.rt_genmask)->sin_port = 0;
memcpy((void *) &rm.rt_gateway, &ic_gateway, sizeof(ic_gateway));
rm.rt_flags = RTF_UP | RTF_GATEWAY;
if ((err = ioctl(sockfd, SIOCADDRT, &rm))
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
站内导航:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!