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;

    }

  • 相关阅读:
    【SaltStack官方版】—— states教程, part 4
    【SaltStack官方版】—— states教程, part 3
    【SaltStack官方版】—— states教程, part 2
    斐波那契递归和非递归算法
    实现两个大数相乘
    快速排序算法
    HadoopMR-Spark-HBase-Hive
    windows10 conda python多版本切换
    websocket通信 实现java模拟一个client与webclient通信
    maven jsp out.print()request.getParameter() 爆红
  • 原文地址:https://www.cnblogs.com/mydomain/p/1813077.html
Copyright © 2011-2022 走看看