zoukankan      html  css  js  c++  java
  • 3、子网掩码的最大匹配前辍

    3、子网掩码的最大匹配前辍

    #include "iostream"

    #include "stdlib.h"

    #include "winsock2.h"

    #include "stdio.h"

    #include "assert.h"

    using namespace std;

    #pragma comment(lib"ws2_32.lib")

    #pragma warning(disable : 4267)

    void max_prex(const char *ip_addrconst char *subnet_mask[], int lenint &n )

    {

     assert(ip_addr != NULL && subnet_mask != NULL && n != NULL);

     unsigned long ulip = inet_addr(ip_addr);

     unsigned long ulsubnet = 0;

     unsigned long ulmask = 0;

     n = -1; //无匹配的

     const char *pstr = NULL;

     char stmp[16];

     int j;

     for (int i = 0; i < leni++)

     {

      pstr = subnet_mask[i];

      memset(stmp, 0, 16);

      j = 0;

      if (*pstr)

      {

       while('/' != *pstr)

      {

    stmp[j++] = *pstr;

    pstr++;

    }

    stmp[j] = '\0';

    ulsubnet = inet_addr(stmp);

    pstr++;

    memset(stmp, 0, 16);

    j = 0;

    while(*pstr)

    {

    stmp[j++] = *pstrpstr++;

    }

    stmp[j] = '\0';

    ulmask = inet_addr(stmp);

    }

    else

    {

    continue;

    }

    //最大匹配子网

    unsigned long maxfit = 0;

    if ((ulip & ulmask) == ulsubnet)

    {

    if (ulsubnet > maxfit)

    {

    n = i;

    maxfit = ulsubnet;

    }

    }

    }

    }

    int main(int argccharargv[])

    {

    const char *ip_addr = "192.168.1.102";

    const char *subnet_mask[] = {"192.168.1.0/255.255.255.0""192.168.1.128/255.255.255.192",

    "192.168.1.64/255.255.255.192""192.168.1.96/255.255.255.224",

    "192.168.1.96/255.255.255.192""" };

    int n;

    int len = sizeof(subnet_mask)/4;

    max_prex(ip_addrsubnet_masklenn);

    printf("%d",n);

    return 0;

    }

  • 相关阅读:
    了解 Spring Data JPA
    Spring MVC 方法注解拦截器
    Spring MVC拦截器+注解方式实现防止表单重复提交
    java中return语句的用法总结
    equal方法在String类与Object类中的区别
    instanceof用法
    EL 简介及用法
    JAVA 四大域对象总结
    JSP基本语法
    Servlet请求转发 RequestDispatcher接口知识点
  • 原文地址:https://www.cnblogs.com/mydomain/p/1813077.html
Copyright © 2011-2022 走看看