Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> IPAddress.Address 
:(
    Опции темы
Jlekc
Дата 12.5.2005, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 520
Регистрация: 10.2.2005
Где: Leopolis

Репутация: 1
Всего: 4



мне нуна перебирать АйПи в комта диапазоне, логично было б написать нечто подобное:
Код

IPAddress ip = IPAddress.Parse("127.0.0.1");
ip.Address++;


но ip.Address представлен как:
Код

127+0*255+....

а не как
Код

1+0*255+0*255*255+...


розложить на состовные не проблема, но мож есть красивее способ?


--------------------
PM MAIL ICQ   Вверх
redrick
Дата 12.5.2005, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 547
Регистрация: 7.1.2004
Где: Москва

Репутация: нет
Всего: 5



ИМХО быстрее разложить чем постить на форум =)


--------------------
Имею Мнение Хрен Оспоришь   
PM MAIL ICQ   Вверх
Jlekc
Дата 13.5.2005, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 520
Регистрация: 10.2.2005
Где: Leopolis

Репутация: 1
Всего: 4



Цитата(redrick @ 12.5.2005, 23:49)
ИМХО быстрее разложить чем постить на форум =)

быть может, но я не спешу.

ну а насчет разложить:
1) разложить на состовные
2) проинкрементить и сделать проверку на переход в следуший регистр
3) сложить

ТУПО, много лишнего кода((,
на VC данных проблем бы небыло, но решил поучить C#, мля почему они адресс так собрали smile

я тут подумываю как ткое на асме прокрутить мож полутиться (кстати в C# вставки асма мона делать?, или нуна длл-ку написать на комта другом языке?)


--------------------
PM MAIL ICQ   Вверх
mr.DUDA
Дата 13.5.2005, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Вот, если лениво самому писать, пример:
Код
using System;
using System.Net;

namespace Demo
{
    public class IPAddressManipulator
    {
        IPAddress _ia;
        public IPAddress Address
        {
            get
            {
                return _ia;
            }
        }

        public IPAddressManipulator(IPAddress addr) {_ia=addr;}

        public static IPAddressManipulator operator++ (IPAddressManipulator addr)
        {
            byte [] b = addr._ia.GetAddressBytes();
            if(b[3]==255)
            {
                b[3]=0;
                if(b[2]==255)
                {
                    b[2]=0;
                    if(b[1]==255)
                    {
                        b[1]=0;
                        if(b[0]==255) 
                            b[0]=0;
                        else
                            b[0]++;
                    }
                    else b[1]++;
                }
                else b[2]++;
            }
            else
                b[3]++;
            
            addr._ia = IPAddress.Parse(string.Format("{0}.{1}.{2}.{3}", b[0], b[1], b[2], b[3]));
            return addr;
        }
    }

    public class DemoTest
    {
        [STAThread]
        public static void Main()
        {
            IPAddress addr = IPAddress.Parse("127.0.0.1");
            IPAddressManipulator man = new IPAddressManipulator(addr);
            man++;
            man++;
            string result = man.Address.ToString();
        }
    }
}


З.Ы. свойство IPAddress.Address помечено в MSDN как obsolete, так что скорее всего в .NET 2.0 его не будет, так что я не стал бы расчитывать на него. Сделано это не от хорошей жизни, а потому что в IPAddress введена поддержка IPv6.


--------------------
user posted image
PM MAIL WWW   Вверх
Jlekc
Дата 13.5.2005, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 520
Регистрация: 10.2.2005
Где: Leopolis

Репутация: 1
Всего: 4



псиб)

а что насчет _asm-a??
ведь АйПи (8 байт) и его мона было б загнать в ЕАХ, считывания происходит с верхнего разряда.
представления в регистри будет то что нуна, его и инкать. Ток чот не получаеться описать вставки асма в Шарпе((, он держет? мона сампл?


--------------------
PM MAIL ICQ   Вверх
Jlekc
Дата 13.5.2005, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 520
Регистрация: 10.2.2005
Где: Leopolis

Репутация: 1
Всего: 4



хых, ну это уже на чот похоже, а то раскладывать, раскладывать
Код

#define BSWAP_DW(x)  (((x>>24)&0x000000FFUL) | ((x<<24)&0xFF000000UL)  |  ((x>>8) &0x0000FF00UL) | ((x<<8) &0x00FF0000UL) )



--------------------
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0465 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.