пятница, 13 марта 2015 г.

Генерация списка MAC адресов в C#

Вводная: Необходимо генерировать определённое количество MAC адресов, начиная с заданного.

Решение: Была написана функция alMacList(string first, decimal count, string separatorChar, bool up). Данная функция получает в качестве параметра первый MAC в диапозоне, получает количество нужных адресов, символ разделитель (MAC может быть как цельным числом, так и разделяться. К примеру - "AABBCCDDEEFF" и "AA:BB:CC:DD:EE:FF"). Нужно ли отдавать в верхнем или нижнем регистре. Возвращает ArrayList. Проверок на корректность входных параметров НЕТ!

Собственно сама функция -

private ArrayList alMacList(string first, decimal count, string separatorChar, bool up)
        {
            ArrayList mac = new ArrayList();
 
            long value = long.Parse(first, NumberStyles.HexNumber, CultureInfo.CurrentCulture.NumberFormat);
 
            for (int i = 0; i < count; i++)
            {
                string s = (value + i).ToString("X12");
                s = String.Format("{0}{6}{1}{6}{2}{6}{3}{6}{4}{6}{5}", s.Substring(0,2), 
                                                                       s.Substring(2,2), 
                                                                       s.Substring(4,2), 
                                                                       s.Substring(6,2), 
                                                                       s.Substring(8,2), 
                                                                       s.Substring(10,2), 
                                                                       separatorChar);
 
                if (up) {s = s.ToUpper(); }
                else s = s.ToLower();
 
                mac.Add(s);
            }
 
            return mac;
        }

Комментариев нет:

Отправить комментарий