当前位置: 技术问答>linux和unix
怎样指定ping数据包的发出接口
来源: 互联网 发布时间:2017-01-02
本文导语: 在我的设备上有3个接口: int1 ip:10.10.1.1 int2 ip:10.10.2.2 int ip:10.10.3.3 去往9.9.9.9的路由可以从以上三个接口走,那么当我执行ping 9.9.9.9时icmp报文时从哪个接口出去的呢?如果我想指定从int1发送报文的话我该怎...
在我的设备上有3个接口:
int1 ip:10.10.1.1
int2 ip:10.10.2.2
int ip:10.10.3.3
去往9.9.9.9的路由可以从以上三个接口走,那么当我执行ping 9.9.9.9时icmp报文时从哪个接口出去的呢?如果我想指定从int1发送报文的话我该怎样写程序?
我的程序代码如下:
int do_detect(char *destnation)
{
int size=1024*10;
/*生成使用ICMP的原始套接字,这种套接字只有root才能生成*/
if( (sockfd=socket(AF_INET,SOCK_RAW,IPPROTO_ICMP) )
int1 ip:10.10.1.1
int2 ip:10.10.2.2
int ip:10.10.3.3
去往9.9.9.9的路由可以从以上三个接口走,那么当我执行ping 9.9.9.9时icmp报文时从哪个接口出去的呢?如果我想指定从int1发送报文的话我该怎样写程序?
我的程序代码如下:
int do_detect(char *destnation)
{
int size=1024*10;
/*生成使用ICMP的原始套接字,这种套接字只有root才能生成*/
if( (sockfd=socket(AF_INET,SOCK_RAW,IPPROTO_ICMP) )