我是靠谱客的博主 过时黄蜂,最近开发中收集的这篇文章主要介绍探测网络设备(主机、路由器)存活的方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

//=======================ping============================
void ping_test(************)
{
    char command[100]="ping";
    char ipaddr[20];
    strcpy(ipaddr,ipaddress);
    strcat(command,ipaddr);
   
    system(command);
    printf("路由ping验证开启,等待%s响应!n",ipaddress);
}
//==================tracerouet==========================
void traceroute_test(************)
{
    char command[100]="traceroute ";
    char ipaddr[20];
    strcpy(ipaddr,ipaddress);
    strcat(command,ipaddr);
    
    system(command);
    printf("路由traceroute验证开启,等待%s响应!n",ipaddress);
}
//======================syn==============================
int syn_test(***********)
{
    char ipaddr[20];
    strcpy(ipaddr,ipaddress);
    int sockfd;
    struct sockaddr_in serv_addr;
    
    FILE *fp;
    fp = fopen("test.txt","w+");
    if(fp == NULL)
    {
        fprintf(fp,"打开文件错误!n");
        return 0;
    }
    
    if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
    {
        fprintf(fp, "socket creating error!n");
        return 0;
    }
    else
        printf("socket creating success!n");
    
    serv_addr.sin_family = AF_INET;
    serv_addr.sin_port = htons(PORT);
    serv_addr.sin_addr.s_addr = inet_addr(ipaddr);
    
    int c = connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(struct sockaddr));


    if(c == -1)
    {
        fprintf(fp,"%s : SYN探测包发送成功,等待回应...nn",ipaddr);
        if(errno == 111)
            fprintf(fp,"%s : Host is alive!",ipaddr);
        else if(errno == 113)
            fprintf(fp,"%s : No route to host!",ipaddr);
        else
        {
          if(errno == 146)
            fprintf(fp,"%s : Host is alive!",ipaddr);
          else if(errno == 148)
            fprintf(fp,"%s : No route to host!",ipaddr);
          else
            fprintf(fp,"Host is alive!但有错误值返回 : %d",errno);
        }
    }
    
    else if(c == 0)
    {
        fprintf(fp,"%s : SYN探测包发送成功,等待回应...nn",ipaddr);
        fprintf(fp,"%s : Host is alive!n",ipaddr);
    }
    
    else
    {
        fprintf(fp,"%s : SYN探测包发送失败!nn",ipaddr);
        fprintf(fp,"Connect error ID : %d",c);
    }


    fclose(fp);
    close(sockfd);


    return 0;
}

最后

以上就是过时黄蜂为你收集整理的探测网络设备(主机、路由器)存活的方法的全部内容,希望文章能够帮你解决探测网络设备(主机、路由器)存活的方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部